Skip to content

"Getting too many notifications?" #442

"Getting too many notifications?"

"Getting too many notifications?" #442

Workflow file for this run

on: [push]
jobs:
build-api:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- id: 'auth'
uses: 'google-github-actions/auth@v1'
with:
credentials_json: '${{ secrets.GCP_CREDENTIALS }}'
- name: Setup Google Cloud SDK
uses: google-github-actions/setup-gcloud@v1
- id: get_branch
run: echo "BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
- id: set_image_name
run: echo "IMAGE_NAME=us-east1-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/api/${BRANCH}" >> $GITHUB_ENV
- name: Build Docker Image
run: docker build -t $IMAGE_NAME:$GITHUB_SHA -f api.Dockerfile .
- name: Push Docker Image to Google Artifact Registry
run: |
gcloud auth configure-docker us-east1-docker.pkg.dev
docker push $IMAGE_NAME:$GITHUB_SHA
build-chat:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- id: 'auth'
uses: 'google-github-actions/auth@v1'
with:
credentials_json: '${{ secrets.GCP_CREDENTIALS }}'
- name: Setup Google Cloud SDK
uses: google-github-actions/setup-gcloud@v1
- id: get_branch
run: echo "BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
- id: set_image_name
run: echo "IMAGE_NAME=us-east1-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/chat/${BRANCH}" >> $GITHUB_ENV
- name: Build Docker Image
run: docker build -t $IMAGE_NAME:$GITHUB_SHA -f chat.Dockerfile .
- name: Push Docker Image to Google Artifact Registry
run: |
gcloud auth configure-docker us-east1-docker.pkg.dev
docker push $IMAGE_NAME:$GITHUB_SHA
build-cron:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- id: 'auth'
uses: 'google-github-actions/auth@v1'
with:
credentials_json: '${{ secrets.GCP_CREDENTIALS }}'
- name: Setup Google Cloud SDK
uses: google-github-actions/setup-gcloud@v1
- id: get_branch
run: echo "BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
- id: set_image_name
run: echo "IMAGE_NAME=us-east1-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/cron/${BRANCH}" >> $GITHUB_ENV
- name: Build Docker Image
run: docker build -t $IMAGE_NAME:$GITHUB_SHA -f cron.Dockerfile .
- name: Push Docker Image to Google Artifact Registry
run: |
gcloud auth configure-docker us-east1-docker.pkg.dev
docker push $IMAGE_NAME:$GITHUB_SHA
build-status:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- id: 'auth'
uses: 'google-github-actions/auth@v1'
with:
credentials_json: '${{ secrets.GCP_CREDENTIALS }}'
- name: Setup Google Cloud SDK
uses: google-github-actions/setup-gcloud@v1
- id: get_branch
run: echo "BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
- id: set_image_name
run: echo "IMAGE_NAME=us-east1-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/status/${BRANCH}" >> $GITHUB_ENV
- name: Build Docker Image
run: docker build -t $IMAGE_NAME:$GITHUB_SHA -f status.Dockerfile .
- name: Push Docker Image to Google Artifact Registry
run: |
gcloud auth configure-docker us-east1-docker.pkg.dev
docker push $IMAGE_NAME:$GITHUB_SHA
deploy-k8s:
runs-on: ubuntu-latest
needs:
- build-api
- build-chat
- build-cron
- build-status
steps:
- name: Checkout code
uses: actions/checkout@v3
- uses: 'google-github-actions/auth@v1'
with:
credentials_json: '${{ secrets.GCP_CREDENTIALS }}'
- name: Deploy if on main
run: |
set -eu
BRANCH_NAME=${GITHUB_REF#refs/heads/}
if [[ "${BRANCH_NAME:-}" != main ]]; then
exit
fi
# == Set up credentials ===
mkdir -p ~/.ssh/
echo "$SSH_PRIVATE_KEY" > ~/.ssh/google_compute_engine
echo "$SSH_PUBLIC_KEY" > ~/.ssh/google_compute_engine.pub
sudo chmod 600 ~/.ssh/google_compute_engine
sudo chmod 600 ~/.ssh/google_compute_engine.pub
echo "$SSH_KNOWN_HOSTS" > ~/.ssh/google_compute_known_hosts
set -x
# == ssh into the machine ===
gcloud compute scp \
--zone "us-east1-b" \
--project "duolicious" \
vm/ci-deployment.sh \
vm/deployment.yaml \
"duolicious_app@instance-1:~"
gcloud compute ssh \
"duolicious_app@instance-1" \
--zone "us-east1-b" \
--project "duolicious" \
--command "~/ci-deployment.sh ${BRANCH_NAME} ${GITHUB_SHA}"
shell: bash
env:
SSH_PRIVATE_KEY: ${{secrets.SSH_PRIVATE_KEY}}
SSH_PUBLIC_KEY: ${{secrets.SSH_PUBLIC_KEY}}
SSH_KNOWN_HOSTS: ${{secrets.SSH_KNOWN_HOSTS}}