Files
scheduler/.drone.yml
T
Khwezi Mngoma aef2884e8e
continuous-integration/drone/pr Build is failing
Added git tag and release step to package
2026-05-10 08:38:10 +02:00

114 lines
3.4 KiB
YAML

---
kind: pipeline
type: docker
name: build
steps:
- name: dotnet-build
image: mcr.microsoft.com/dotnet/sdk:10.0
commands:
- dotnet restore LiteCharmsScheduler.slnx
- dotnet build LiteCharmsScheduler.slnx -c Release
- name: dotnet-test
image: mcr.microsoft.com/dotnet/sdk:10.0
commands:
- dotnet restore LiteCharmsScheduler.slnx
- dotnet test LiteCharmsScheduler.slnx -c Release --no-restore
trigger:
event: [ pull_request ]
---
kind: pipeline
type: docker
name: package
steps:
- name: docker-build
image: plugins/docker
settings:
registry: nexus.khongisa.co.za
repo: nexus.khongisa.co.za/litecharms-scheduler
tags: [ latest, "1.${DRONE_BUILD_NUMBER}" ]
custom_labels:
- org.opencontainers.image.source=https://gitea.khongisa.co.za/litecharms/scheduler
- org.opencontainers.image.version=1.${DRONE_BUILD_NUMBER}
- org.opencontainers.image.revision=${DRONE_COMMIT_SHA}
username: { from_secret: docker_username }
password: { from_secret: docker_password }
- name: gitea-tag-release
image: alpine/git
environment:
GITEA_TOKEN: { from_secret: git_token }
GITEA_USER: { from_secret: git_username }
GITEA_PASS: { from_secret: git_password }
commands:
- git remote set-url origin https://$${GITEA_USER}:$${GITEA_PASS}@gitea.khongisa.co.za/litecharms/scheduler.git
- git tag 1.${DRONE_BUILD_NUMBER}
- git push origin 1.${DRONE_BUILD_NUMBER}
- |
curl -X POST "https://gitea.khongisa.co.za/api/v1/repos/litecharms/scheduler/releases" \
-H "Authorization: token $${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
-d "{
\"tag_name\": \"1.${DRONE_BUILD_NUMBER}\",
\"target_commitish\": \"${DRONE_COMMIT_SHA}\",
\"name\": \"Release 1.${DRONE_BUILD_NUMBER}\",
\"body\": \"### Artifacts\n* **Docker Image:** nexus.khongisa.co.za/litecharms-scheduler:1.${DRONE_BUILD_NUMBER}\n* **NuGet:** [View on Nexus](https://nexus.khongisa.co.za/repository/nuget-group/)\",
\"draft\": false,
\"prerelease\": false
}"
depends_on:
- build
trigger:
event: [ pull_request ]
---
kind: pipeline
type: docker
name: uat
steps:
- name: deploy
image: bitnami/kubectl:latest
environment:
KUBE_CONFIG: { from_secret: kube_config }
commands:
- mkdir -p $HOME/.kube
- echo "$KUBE_CONFIG" > $HOME/.kube/config
- kubectl apply -f litecharms-scheduler-uat.yml
- kubectl set image statefulset/litecharms-scheduler-uat scheduler=nexus.khongisa.co.za/litecharms-scheduler:1.${DRONE_BUILD_NUMBER} -n litecharms-scheduler-uat
depends_on:
- package
trigger:
event: [ pull_request ]
---
kind: pipeline
type: docker
name: prod
steps:
- name: deploy
image: bitnami/kubectl:latest
environment:
KUBE_CONFIG: { from_secret: kube_config }
commands:
- mkdir -p $HOME/.kube
- echo "$KUBE_CONFIG" > $HOME/.kube/config
- kubectl apply -f litecharms-scheduler.yml
- kubectl rollout restart statefulset/litecharms-scheduler -n litecharms-scheduler
- kubectl set image statefulset/litecharms-scheduler scheduler=nexus.khongisa.co.za/litecharms-scheduler:1.${DRONE_BUILD_NUMBER} -n litecharms-scheduler
depends_on:
- uat
trigger:
event: [ promote ]
target: [ production ]