Skip to content

Bump com.google.firebase:firebase-admin from 9.4.0 to 9.4.1 (#1413) #744

Bump com.google.firebase:firebase-admin from 9.4.0 to 9.4.1 (#1413)

Bump com.google.firebase:firebase-admin from 9.4.0 to 9.4.1 (#1413) #744

Workflow file for this run

name: Build and deploy
on:
push:
branches: [ master ]
defaults:
run:
working-directory: yona-server
concurrency: ${{ github.workflow }}
jobs:
determine-build-id:
name: Determine build ID
runs-on: ubuntu-latest
outputs:
build-id: ${{ steps.set-build-id.outputs.build-id }}
steps:
- name: Set build ID
id: set-build-id
working-directory: '${{ env.HELM_REPO }}'
run: |
build_id=$(($GITHUB_RUN_NUMBER+1500))
echo "build-id=${build_id}" >> $GITHUB_OUTPUT
build-check-publish:
needs:
- determine-build-id
uses: ./.github/workflows/build-check-publish.yml
with:
build-id: ${{ needs.determine-build-id.outputs.build-id }}
is-pr-build: false
secrets:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
YONA_BUILD_GITHUB_PAT: ${{ secrets.YONA_BUILD_GITHUB_PAT }}
DOCKER_HUB_USER_NAME: ${{ secrets.DOCKER_HUB_USER_NAME }}
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
dependency-submission:
name: Publish dependencies
needs:
- build-check-publish
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout src repo
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/[email protected]
with:
distribution: 'temurin'
java-version: 17
- name: Publish Gradle dependencies
uses: gradle/actions/dependency-submission@v4
deploy-load-test-server:
if: ${{ false }} # Load test server not available anymore
name: Deploy load test server
environment: load-test
runs-on: ubuntu-latest
env:
KUBECONFIG: /home/bert.roos/.kube/config
needs:
- determine-build-id
- build-check-publish
steps:
- name: Checkout src repo
uses: actions/checkout@v4
- name: Wipe existing database
uses: appleboy/[email protected]
with:
host: ${{ secrets.DEPLOYMENT_HOST }}
username: ${{ secrets.DEPLOYMENT_USERNAME }}
key: ${{ secrets.DEPLOYMENT_SSH_KEY }}
proxy_host: ${{ secrets.PROXY_HOST }}
proxy_username: ${{ secrets.PROXY_USERNAME }}
proxy_key: ${{ secrets.PROXY_SSH_KEY }}
script: |
mysql -h ${{ secrets.BETA_DB_IP_ADDRESS }} -u ${{ secrets.BETA_DB_USERNAME }} -p${{ secrets.BETA_DB_PASSWORD }} -e "DROP DATABASE loadtest; CREATE DATABASE loadtest;"
- name: Deploy Yona
uses: ./.github/workflows/actions/deploy
with:
host-name: ${{ secrets.DEPLOYMENT_HOST }}
ssh-user-name: ${{ secrets.DEPLOYMENT_USERNAME }}
ssh-key: ${{ secrets.DEPLOYMENT_SSH_KEY }}
proxy-host-name: ${{ secrets.PROXY_HOST }}
proxy-ssh-user-name: ${{ secrets.PROXY_USERNAME }}
proxy-ssh-key: ${{ secrets.PROXY_SSH_KEY }}
kube-config: ${{ env.KUBECONFIG }}
kube-context: beta
kube-namespace: loadtest
helm-release: loadtest
build-id: ${{ needs.determine-build-id.outputs.build-id }}
repo-number: 2
helm-values-path: helm/values_loadtest.yaml
gitlab-token: ${{ secrets.YONA_BUILD_GITLAB_TOKEN }}
- name: Notify failure through Slack
if: failure()
uses: slackapi/[email protected]
with:
channel-id: '#devops'
slack-message: "Load test deployment for build ${{ needs.determine-build-id.outputs.build-id }} failed. See https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
deploy-beta-test-server:
if: ${{ false }} # Beta test server not available anymore
name: Deploy beta test server
environment: beta-test
runs-on: ubuntu-latest
env:
KUBECONFIG: /home/bert.roos/.kube/config
needs:
- determine-build-id
- build-check-publish
- deploy-load-test-server
steps:
- name: Checkout src repo
uses: actions/checkout@v4
- name: Deploy Yona
uses: ./.github/workflows/actions/deploy
with:
host-name: ${{ secrets.DEPLOYMENT_HOST }}
ssh-user-name: ${{ secrets.DEPLOYMENT_USERNAME }}
ssh-key: ${{ secrets.DEPLOYMENT_SSH_KEY }}
proxy-host-name: ${{ secrets.PROXY_HOST }}
proxy-ssh-user-name: ${{ secrets.PROXY_USERNAME }}
proxy-ssh-key: ${{ secrets.PROXY_SSH_KEY }}
kube-config: ${{ env.KUBECONFIG }}
kube-context: beta
build-id: ${{ needs.determine-build-id.outputs.build-id }}
repo-number: 2
helm-values-path: helm/values.yaml
gitlab-token: ${{ secrets.YONA_BUILD_GITLAB_TOKEN }}
- name: Notify deployment status through Slack
uses: slackapi/[email protected]
with:
channel-id: '#devops'
slack-message: "Build ${{ needs.determine-build-id.outputs.build-id }} ready to deploy to production"
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
- name: Notify failure through Slack
if: failure()
uses: slackapi/[email protected]
with:
channel-id: '#devops'
slack-message: "Beta test deployment for build ${{ needs.determine-build-id.outputs.build-id }} failed. See https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
deploy-prod-server:
if: ${{ false }} # Production server not available anymore
name: Deploy production server
environment: prod
runs-on: ubuntu-latest
env:
KUBECONFIG: /home/bert.roos/.kube/config
needs:
- determine-build-id
- build-check-publish
- deploy-beta-test-server
steps:
- name: Checkout src repo
uses: actions/checkout@v4
- name: Deploy Yona
uses: ./.github/workflows/actions/deploy
with:
host-name: ${{ secrets.DEPLOYMENT_HOST }}
ssh-user-name: ${{ secrets.DEPLOYMENT_USERNAME }}
ssh-key: ${{ secrets.DEPLOYMENT_SSH_KEY }}
proxy-host-name: ${{ secrets.PROXY_HOST }}
proxy-ssh-user-name: ${{ secrets.PROXY_USERNAME }}
proxy-ssh-key: ${{ secrets.PROXY_SSH_KEY }}
kube-config: ${{ env.KUBECONFIG }}
kube-context: prod
build-id: ${{ needs.determine-build-id.outputs.build-id }}
repo-number: 1
helm-values-path: helm/values.yaml
gitlab-token: ${{ secrets.YONA_BUILD_GITLAB_TOKEN }}
- name: Notify deployment success through Slack
uses: slackapi/[email protected]
with:
channel-id: '#devops'
slack-message: "Build ${{ needs.determine-build-id.outputs.build-id }} successfully deployed to production"
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
- name: Notify failure through Slack
if: failure()
uses: slackapi/[email protected]
with:
channel-id: '#devops'
slack-message: "Production deployment for build ${{ needs.determine-build-id.outputs.build-id }} failed. See https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}