Skip to content

tmillingtonhic triggered deploy to DEV pipeline #1984

tmillingtonhic triggered deploy to DEV pipeline

tmillingtonhic triggered deploy to DEV pipeline #1984

name: Build and deploy to DEV
run-name: ${{ github.actor }} triggered deploy to DEV pipeline
on:
push:
branches:
- 'dev'
env:
PROJECT_ID: '${{ secrets.PROJECT_ID }}'
GAR_LOCATION: '${{ secrets.GAR_LOCATION }}'
SLACK_WEBHOOK_URL: '${{ secrets.SLACK_WEBHOOK_URL}}'
SLACK_CHANNEL: '${{ secrets.GITHUBACTIONS_SLACK_CHANNEL }}'
jobs:
build:
name: build
permissions:
contents: write
id-token: write
runs-on: ubuntu-latest
environment: dev
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v4
with:
ref: dev
- name: Read VERSION file
id: getversion
run: |
sed -n 's/^appVersion:\(.*\)/\1/p' < chart/gateway-api/Chart.yaml > version
echo "version=$(sed '/.*\"\(.*\)\".*/ s//\1/g' version)" >> $GITHUB_OUTPUT
- name: Google Auth
id: auth
uses: 'google-github-actions/auth@v2'
with:
token_format: 'access_token'
workload_identity_provider: '${{ secrets.WIF_PROVIDER }}'
service_account: '${{ secrets.WIF_SERVICE_ACCOUNT }}'
- name: Login to GAR
id: garlogin
uses: docker/login-action@v2
with:
registry: ${{ env.GAR_LOCATION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.PROJECT_ID }}
username: oauth2accesstoken
password: ${{ steps.auth.outputs.access_token }}
- name: Build and Push Container
id: build
shell: bash
env:
GAR_LOCATION: ${{ secrets.GAR_LOCATION }}
PROJECT_ID: ${{ secrets.PROJECT_ID }}
GAR_NAME: ${{ secrets.GAR_NAME_API }}
run: |-
docker build -t '${{ env.GAR_LOCATION }}'-docker.pkg.dev/'${{ env.PROJECT_ID }}'/'${{ env.GAR_NAME }}'/${{ steps.getversion.outputs.version }}:${{ github.sha }} -t '${{ env.GAR_LOCATION }}'-docker.pkg.dev/'${{ env.PROJECT_ID }}'/'${{ env.GAR_NAME }}'/${{ steps.getversion.outputs.version }}:latest ./
docker push --all-tags '${{ env.GAR_LOCATION }}'-docker.pkg.dev/'${{ env.PROJECT_ID }}'/'${{ env.GAR_NAME }}'/${{ steps.getversion.outputs.version }}
deploy:
name: deploy
needs: build
permissions:
contents: write
id-token: write
runs-on: ubuntu-latest
environment: dev
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v4
with:
ref: dev
- name: Google Auth
id: auth
uses: 'google-github-actions/auth@v2'
with:
token_format: 'access_token'
workload_identity_provider: '${{ secrets.WIF_PROVIDER }}'
service_account: '${{ secrets.WIF_SERVICE_ACCOUNT }}'
- name: Read VERSION file
id: getversion
run: |
sed -n 's/^appVersion:\(.*\)/\1/p' < chart/gateway-api/Chart.yaml > version
echo "version=$(sed '/.*\"\(.*\)\".*/ s//\1/g' version)" >> $GITHUB_OUTPUT
- name: Deploy to Cloud Run
uses: actions-hub/gcloud@540.0.0
id: deploy
env:
PROJECT_ID: ${{ secrets.PROJECT_ID }}
GAR_LOCATION: ${{ secrets.GAR_LOCATION }}
GAR_NAME: ${{ secrets.GAR_NAME_API }}
SERVICE_NAME: '${{ secrets.SERVICE_NAME_API }}'
SERVICE_REGION: '${{ secrets.SERVICE_REGION_API }}'
with:
args: run services update '${{ env.SERVICE_NAME }}' --image='${{ env.GAR_LOCATION }}'-docker.pkg.dev/'${{ env.PROJECT_ID }}'/'${{ env.GAR_NAME }}'/${{ steps.getversion.outputs.version }}:${{ github.sha }} --region='${{ env.SERVICE_REGION }}' --project='${{ env.PROJECT_ID }}'
- name: Run Notification
id: runnotificationsent
uses: act10ns/slack@v1
with:
status: ${{ job.status }}
steps: ${{ toJson(steps) }}
channel: ${{ env.SLACK_CHANNEL }}
message: Deploying {{ env.GITHUB_REF_NAME }} branch to DEV ${{ job.status }}
if: always()