name: '[Develop] Deploy Functions' on: push: branches: - develop jobs: build-release: runs-on: ubuntu-latest outputs: new_release_published: ${{ steps.semantic.outputs.new_release_published }} steps: - name: Checkout repository uses: 'actions/checkout@v4' - name: Semantic Release id: semantic uses: cycjimmy/semantic-release-action@v4 env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} deploy-to-gcp: needs: build-release if: needs.build-release.outputs.new_release_published == 'true' runs-on: ubuntu-latest environment: develop permissions: contents: 'write' id-token: 'write' issues: 'write' pull-requests: 'write' deployments: 'write' steps: - name: Checkout repository uses: 'actions/checkout@v4' with: persist-credentials: false - name: Set Environment Variables run: | echo COMPANY_NAME="${{ env.COMPANY_NAME }}" > .env echo TWITTER_CREATOR="${{ env.TWITTER_CREATOR }}" >> .env echo TWITTER_SITE="${{ env.TWITTER_SITE }}" >> .env echo SITE_NAME="${{ env.SITE_NAME }}" >> .env echo SHOPIFY_REVALIDATION_SECRET="${{ env.SHOPIFY_REVALIDATION_SECRET }}" >> .env echo SHOPIFY_STOREFRONT_ACCESS_TOKEN="${{ env.SHOPIFY_STOREFRONT_ACCESS_TOKEN }}" >> .env echo SHOPIFY_STORE_DOMAIN="${{ env.SHOPIFY_STORE_DOMAIN }}" >> .env - name: Authenticate with Google Cloud id: auth uses: google-github-actions/auth@v2 with: project_id: ${{ vars.PROJECT_ID }} credentials_json: ${{secrets.CREDENTIALS_JSON}} - name: Set up Cloud SDK uses: 'google-github-actions/setup-gcloud@v2' - name: Configure Docker run: | gcloud auth configure-docker - name: Build and Push Docker Image run: | docker build -t gcr.io/${{ vars.PROJECT_ID }}/${{ vars.DOCKER_IMAGE_NAME }}:latest . docker push gcr.io/${{ vars.PROJECT_ID}}/${{ vars.DOCKER_IMAGE_NAME }}:latest - id: 'deploy' uses: 'google-github-actions/deploy-cloudrun@v2' with: service: ${{vars.APP_NAME}} image: 'gcr.io/${{ vars.PROJECT_ID }}/${{ vars.DOCKER_IMAGE_NAME }}:latest' - name: 'print result' run: echo ${{ steps.deploy.outputs.url }}