feat: use standardized logging #254
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 to Staging | |
on: | |
push: | |
branches: | |
- master | |
workflow_dispatch: | |
env: | |
DOCKER_BUILDKIT: 1 | |
GITHUB_SHA: ${{ github.sha }} | |
jobs: | |
buildAndPush: | |
if: | | |
github.event_name != 'push' | |
|| !startsWith(github.event.head_commit.message, 'chore(master): release') | |
name: Build and push | |
runs-on: ubuntu-latest | |
permissions: | |
id-token: write | |
contents: read | |
steps: | |
- name: Set up buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-region: ${{ secrets.STAGING_REGION }} | |
role-to-assume: ${{ secrets.STAGING_ROLE_TO_ASSUME }} | |
- name: Configure environment | |
run: | | |
aws ssm get-parameter --name ${{ secrets.STAGING_PARAMETER_NAME }} | jq '.Parameter.Value' | jq '. | fromjson' | jq -r 'to_entries | .[] | .key + "=" + .value' >> $GITHUB_ENV || exit 1 | |
- name: Amazon ECR login | |
uses: aws-actions/amazon-ecr-login@v1 | |
- name: Bake | |
uses: docker/bake-action@v2 | |
with: | |
targets: builder,base,app | |
set: | | |
builder.cache-from=type=registry,ref=${{ env.REPOSITORY_URI }}:release-builder | |
builder.cache-to=type=inline | |
builder.tags=${{ env.REPOSITORY_URI }}:release-builder | |
builder.output=type=registry | |
base.cache-from=type=registry,ref=${{ env.REPOSITORY_URI }}:release-base | |
base.cache-to=type=inline | |
base.tags=${{ env.REPOSITORY_URI }}:release-base | |
base.output=type=registry | |
app.tags=${{ env.REPOSITORY_URI }}:${{ env.GITHUB_SHA }} | |
app.tags=${{ env.REPOSITORY_URI }}:release | |
app.output=type=registry | |
deploy: | |
needs: buildAndPush | |
name: Deploy | |
runs-on: ubuntu-latest | |
permissions: | |
id-token: write | |
contents: read | |
steps: | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-region: ${{ secrets.STAGING_REGION }} | |
role-to-assume: ${{ secrets.STAGING_ROLE_TO_ASSUME }} | |
- name: Configure environment | |
run: | | |
aws ssm get-parameter --name ${{ secrets.STAGING_PARAMETER_NAME }} | jq '.Parameter.Value' | jq '. | fromjson' | jq -r 'to_entries | .[] | .key + "=" + .value' >> $GITHUB_ENV || exit 1 | |
- name: Configure kube | |
run: | | |
eval $KUBECONFIG_COMMAND | |
- name: Deploy | |
run: | | |
kubectl set image --namespace $NAMESPACE deployment/metaverse-app metaverse-app=$REPOSITORY_URI:$GITHUB_SHA & | |
kubectl set image --namespace $NAMESPACE deployment/metaverse-ingress metaverse-ingress=$REPOSITORY_URI:$GITHUB_SHA & | |
kubectl set image --namespace $NAMESPACE deployment/metaverse-enrich metaverse-enrich=$REPOSITORY_URI:$GITHUB_SHA & | |
wait | |
- name: Verify | |
run: | | |
kubectl rollout status --namespace $NAMESPACE deployment/metaverse-app & | |
kubectl rollout status --namespace $NAMESPACE deployment/metaverse-ingress & | |
kubectl rollout status --namespace $NAMESPACE deployment/metaverse-enrich & | |
wait |