Merge pull request #4 from programme-lv/main #11
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy | |
on: | |
push: | |
branches: [ "prod" ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Docker metadata | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: krisjanisp/proglv-backend | |
tags: | | |
type=schedule | |
type=schedule,pattern={{date 'YYYYMMDD-hhmmss'}} | |
type=sha | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Build and push to DH | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
- name: Install doctl | |
uses: digitalocean/action-doctl@v2 | |
with: | |
token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }} | |
- name: Create kubernetes directory | |
run: mkdir -p kubernetes | |
- name: Download manifest | |
run: wget https://raw.githubusercontent.com/programme-lv/devops/main/kubernetes/proglv_backend_deployment.yaml -P kubernetes/ | |
- name: Replace manifest tokens | |
run: | | |
sed -e 's/__IMAGE_AUTHOR__/krisjanisp/g' \ | |
-e 's/__IMAGE_NAME__/proglv-backend/g' \ | |
-e 's/__IMAGE_TAG__/${{env.DOCKER_METADATA_OUTPUT_VERSION}}/g' \ | |
< ./kubernetes/proglv_backend_deployment.yaml > ./kubernetes/gucci_deployment.yaml | |
- name: Log manifest | |
run: cat ./kubernetes/gucci_deployment.yaml | |
- name: Save DigitalOcean kubeconfig with short-lived credentials | |
run: doctl kubernetes cluster kubeconfig save --expiry-seconds 600 ${{ secrets.CLUSTER_NAME }} | |
- name: Deploy to DigitalOcean Kubernetes | |
run: kubectl apply -f ./kubernetes/gucci_deployment.yaml | |
- name: Verify deployment | |
run: timeout 30s kubectl rollout status deployment/proglv-backend -n backend | |
- name: Display running pods | |
run: kubectl get pods -n backend |