Skip to content

Merge pull request #120 from DAOsign/DAOS-985 #17

Merge pull request #120 from DAOsign/DAOS-985

Merge pull request #120 from DAOsign/DAOS-985 #17

Workflow file for this run

name: Build & Push UAT Release
on:
push:
tags: ["uat-v*.*.*"]
env:
DO_CONTAINER_REGISTRY: "daosign-container-registry"
jobs:
build:
name: Run docker build
runs-on: ubuntu-latest
outputs:
image_tag: ${{steps.vars.outputs.tag}}
steps:
- uses: actions/checkout@v3
- name: Get the version
id: vars
run: echo "tag=$(echo ${GITHUB_REF#refs/tags/})" >> $GITHUB_OUTPUT
- name: Build the Docker image
run: |
docker build -t uat-frontend:${{steps.vars.outputs.tag}} \
--build-arg NEXT_PUBLIC_REST_ENDPOINT="https://api.uat.daosign.org" \
--build-arg NEXT_PUBLIC_GRAPHQL_ENDPOINT="https://api.uat.daosign.org/graphql" \
--build-arg NEXT_PUBLIC_PINATA_GATEWAY="https://daosign.mypinata.cloud" \
.
- name: Install doctl
uses: digitalocean/action-doctl@v2
with:
token: ${{ secrets.DO_ACCESS_TOKEN }}
- name: Log in to DigitalOcean Container Registry
run: doctl registry login --expiry-seconds 600
- name: Tag image
run: |
docker tag uat-frontend:${{ steps.vars.outputs.tag }} \
registry.digitalocean.com/${{ env.DO_CONTAINER_REGISTRY }}/uat-frontend:${{ steps.vars.outputs.tag }}
- name: Push to DigitalOcean Container Registry
run: |
docker push registry.digitalocean.com/${{ env.DO_CONTAINER_REGISTRY }}/uat-frontend:${{ steps.vars.outputs.tag }}
deploy:
name: Run helm upgrade
runs-on: ubuntu-latest
needs: [build]
env:
# Ingress
HOST: "uat.daosign.org"
steps:
- uses: actions/checkout@v3
- name: Create & View .env.yaml file
id: create-env
run: |
cat << EOF > .env.yaml
{
"ingress": {
"host": "${{ env.HOST }}"
}
}
EOF
- name: Install doctl
uses: digitalocean/action-doctl@v2
with:
token: ${{ secrets.DO_ACCESS_TOKEN }}
- name: Save DigitalOcean kubeconfig
run: doctl kubernetes cluster kubeconfig save daosign-kubernetes-cluster-dev
- name: Helm deploy the latest image
env:
NAMESPACE: "uat"
HELM_VERSION: 1.3.0
run: |
doctl registry login --expiry-seconds 600 && \
kubectl get pods -n ${{ env.NAMESPACE }} && helm ls -n ${{ env.NAMESPACE }} && \
helm upgrade helm-frontend -i -n ${{ env.NAMESPACE }} --atomic -f .env.yaml oci://registry.digitalocean.com/${{ env.DO_CONTAINER_REGISTRY }}/helm-frontend --version $HELM_VERSION \
--set=frontend.image.repository=registry.digitalocean.com/${{ env.DO_CONTAINER_REGISTRY }}/uat-frontend,frontend.image.tag=${{needs.build.outputs.image_tag}} && \
helm ls -n ${{ env.NAMESPACE }} && kubectl get pods -n ${{ env.NAMESPACE }}