From 26cd9b284828fb6d657ebc8d3b2a616c0a63264a Mon Sep 17 00:00:00 2001 From: Alex <12097569+nialexsan@users.noreply.github.com> Date: Tue, 23 Jan 2024 16:46:43 -0500 Subject: [PATCH] cloudrun deploy (#353) * cloudrun deploy * deploy action * fixed typo * access token * direct identity * debug token * debug token request * revert debug * restore permissions * fix image location * authorize docker * fix image name * deploy staging/production * checkout step * fix vars * bump deployment * fix typo * add branch restriction --- .github/workflows/deploy.yml | 87 ++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..8d1ef649 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,87 @@ +name: "Deploy to Cloud Run" + +on: + push: + branches: + - v2 + +env: + DOCKER_IMAGE_URL: ${{ vars.GCP_DOCKER_IMAGE_URL }}:${{ github.sha }} + GAR_LOCATION: ${{ vars.GCP_GAR_LOCATION }} + PROJECT_ID: ${{ vars.GCP_PROJECT_ID }} + SERVICE_ACCOUNT: ${{ vars.GCP_SERVICE_ACCOUNT }} + WORKLOAD_IDENTITY_PROVIDER: ${{ vars.GCP_WORKLOAD_IDENTITY_PROVIDER }} + +jobs: + build: + runs-on: ubuntu-latest + permissions: + id-token: write + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Google auth + id: auth + uses: google-github-actions/auth@v2 + with: + token_format: 'access_token' + workload_identity_provider: ${{ env.WORKLOAD_IDENTITY_PROVIDER }} + service_account: ${{ env.SERVICE_ACCOUNT }} + + - name: Set up Cloud SDK + uses: google-github-actions/setup-gcloud@v1 + with: + project_id: ${{ env.PROJECT_ID }} + + - name: Docker Auth + run: |- + gcloud auth configure-docker ${{ env.GAR_LOCATION }}-docker.pkg.dev + docker build -t ${{ env.DOCKER_IMAGE_URL }} --file Dockerfile . + docker push ${{ env.DOCKER_IMAGE_URL }} + + deploy-staging: + needs: [build] + environment: staging + runs-on: ubuntu-latest + permissions: + id-token: write + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Google auth + id: auth + uses: google-github-actions/auth@v2 + with: + token_format: 'access_token' + workload_identity_provider: ${{ vars.GCP_WORKLOAD_IDENTITY_PROVIDER }} + service_account: ${{ vars.GCP_SERVICE_ACCOUNT }} + - name: Deploy to Cloud Run + uses: google-github-actions/deploy-cloudrun@v1 + with: + service: ${{ vars.GCP_SERVICE }} + image: ${{ env.DOCKER_IMAGE_URL }} + + deploy-production: + needs: [build] + environment: production + runs-on: ubuntu-latest + permissions: + id-token: write + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Google auth + id: auth + uses: google-github-actions/auth@v2 + with: + token_format: 'access_token' + workload_identity_provider: ${{ vars.GCP_WORKLOAD_IDENTITY_PROVIDER }} + service_account: ${{ vars.GCP_SERVICE_ACCOUNT }} + - name: Deploy to Cloud Run + uses: google-github-actions/deploy-cloudrun@v1 + with: + service: ${{ vars.GCP_SERVICE }} + image: ${{ env.DOCKER_IMAGE_URL }}