Skip to content

Deploy

Deploy #56

Workflow file for this run

# Deploys the selected branch or tag passed in to either k8s environment
name: Deploy
on:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
build-publish:
runs-on: ubuntu-latest
outputs:
docker_image_digest: ${{ steps.docker_push.outputs.digest }}
version: ${{ steps.docker_meta.outputs.version }}
steps:
- name: Checkout
if: github.ref_type == "branch"
uses: actions/checkout@v3
- name: Docker meta
if: github.ref_type == "branch"
id: docker_meta
uses: docker/metadata-action@v4
with:
images: ${{ github.repository }}
tags: |
type=ref,event=branch
- name: Login to Dockerhub
if: github.ref_type == "branch"
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build/Tag/Push Image
if: github.ref_type == "branch"
uses: docker/build-push-action@v3
with:
push: true
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
- name: Deployment Info
run: 'echo "::warning::Will deploy docker tag/digest: ${{ github.ref_type == "branch" ? ${{ steps.docker_meta.outputs.version }}/${{ steps.docker_push.outputs.digest }} || ${{ github.ref_name }} }}"'

Check failure on line 47 in .github/workflows/deploy.yml

View workflow run for this annotation

GitHub Actions / Deploy

Invalid workflow file

The workflow is not valid. .github/workflows/deploy.yml (Line: 47, Col: 14): Unexpected symbol: '"branch"'. Located at position 20 within expression: github.ref_type == "branch" ? ${{ steps.docker_meta.outputs.version .github/workflows/deploy.yml (Line: 69, Col: 23): Unexpected symbol: '"branch"'. Located at position 20 within expression: github.ref_type == "branch" ? ${{ steps.docker_push.outputs.digest
deploy-dev:
runs-on: ubuntu-latest
needs:
- build-publish
env:
DEPLOY_ENV: dev
environment:
name: k8s-dev
url: https://explorer.dev.hiro.so/
steps:
- name: Checkout actions repo
uses: actions/checkout@v3
with:
ref: explorer
token: ${{ secrets.GH_TOKEN }}
repository: ${{ secrets.DEVOPS_ACTIONS_REPO }}
- name: Deploy Explorer
uses: ./actions/deploy
with:
docker_tag: ${{ github.ref_type == "branch" ? ${{ steps.docker_push.outputs.digest }} || ${{ github.ref_name }} ))
application_path: manifests/sites/explorer/${{ env.DEPLOY_ENV }}/base/kustomization.yaml
gh_token: ${{ secrets.GH_TOKEN }}
auto-approve-dev:
runs-on: ubuntu-latest
if: github.ref_type == "tag"
needs:
- build-publish
steps:
- name: Approve pending deployment
run: |
sleep 5
ENV_ID=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/hirosystems/explorer/actions/runs/${{ github.run_id }}/pending_deployments" | jq -r '.[0].environment.id // empty')
if [[ -n "${ENV_ID}" ]]; then
curl -s -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/hirosystems/explorer/actions/runs/${{ github.run_id }}/pending_deployments" -d "{\"environment_ids\":[${ENV_ID}],\"state\":\"approved\",\"comment\":\"auto approve\"}"
fi
deploy-staging:
runs-on: ubuntu-latest
needs:
- build-publish
- deploy-dev
env:
DEPLOY_ENV: stg
environment:
name: k8s-staging
url: https://explorer.stg.hiro.so/
steps:
- name: Checkout actions repo
uses: actions/checkout@v3
with:
ref: explorer
token: ${{ secrets.GH_TOKEN }}
repository: ${{ secrets.DEVOPS_ACTIONS_REPO }}
- name: Deploy Explorer
uses: ./actions/deploy
with:
docker_tag: ${{ github.ref_type == "branch" ? ${{ steps.docker_push.outputs.digest }} || ${{ github.ref_name }} ))
application_path: manifests/sites/explorer/${{ env.DEPLOY_ENV }}/base/kustomization.yaml
gh_token: ${{ secrets.GH_TOKEN }}
auto-approve-staging:
runs-on: ubuntu-latest
if: github.ref_type == "tag"
needs:
- build-publish
steps:
- name: Approve pending deployment
run: |
sleep 5
ENV_ID=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/hirosystems/explorer/actions/runs/${{ github.run_id }}/pending_deployments" | jq -r '.[0].environment.id // empty')
if [[ -n "${ENV_ID}" ]]; then
curl -s -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/hirosystems/explorer/actions/runs/${{ github.run_id }}/pending_deployments" -d "{\"environment_ids\":[${ENV_ID}],\"state\":\"approved\",\"comment\":\"auto approve\"}"
fi
deploy-prod:
runs-on: ubuntu-latest
if: github.ref_type == "tag"
needs:
- deploy-staging
env:
DEPLOY_ENV: prd
environment:
name: k8s-prod
url: https://explorer.hiro.so/
steps:
- name: Checkout actions repo
uses: actions/checkout@v3
with:
ref: explorer
token: ${{ secrets.GH_TOKEN }}
repository: ${{ secrets.DEVOPS_ACTIONS_REPO }}
- name: Deploy Explorer
uses: ./actions/deploy
with:
docker_tag: ${{ github.ref_type == "branch" ? ${{ steps.docker_push.outputs.digest }} || ${{ github.ref_name }} ))
application_path: manifests/sites/explorer/${{ env.DEPLOY_ENV }}/base/kustomization.yaml
gh_token: ${{ secrets.GH_TOKEN }}