name: '[Develop] Deploy Functions' env: COMPANY_NAME: ${{ vars.COMPANY_NAME }} TWITTER_CREATOR: ${{ vars.TWITTER_CREATOR }} TWITTER_SITE: ${{ vars.TWITTER_SITE }} SITE_NAME: ${{ vars.SITE_NAME }} SHOPIFY_REVALIDATION_SECRET: ${{ secrets.SHOPIFY_REVALIDATION_SECRET }} SHOPIFY_STOREFRONT_ACCESS_TOKEN: ${{ vars.SHOPIFY_STOREFRONT_ACCESS_TOKEN }} SHOPIFY_STORE_DOMAIN: ${{ vars.SHOPIFY_STORE_DOMAIN }} on: push: branches: - develop jobs: deploy-to-gcp: runs-on: ubuntu-latest environment: develop permissions: contents: 'read' id-token: 'write' steps: - name: Checkout repository uses: 'actions/checkout@v4' - 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 - name: Deploy to Cloud Run run: | gcloud run deploy ${{vars.APP_NAME}} \ --image gcr.io/${{ vars.PROJECT_ID }}/${{ vars.DOCKER_IMAGE_NAME }}:latest \ --platform managed \ --region us-central1 \ --allow-unauthenticated # https://github.com/marketplace/actions/deploy-to-cloud-run # - name: Build and Deploy to Google CloudRun # id: 'deploy' # uses: 'google-github-actions/deploy-cloudrun@v2' # with: # service: ${{ vars.APP_NAME }} # project_id: ${{ vars.PROJECT_ID }} # region: ${{ vars.REGION }} # source: ./ # env_vars: |- # COMPANY_NAME="Foo Bar" # TWITTER_CREATOR="@vercel" # TWITTER_SITE="https://nextjs.org/commerce" # SITE_NAME="Next.js Commerce" # SHOPIFY_REVALIDATION_SECRET="${{ env.SHOPIFY_REVALIDATION_SECRET }}" # SHOPIFY_STOREFRONT_ACCESS_TOKEN="${{ env.SHOPIFY_STOREFRONT_ACCESS_TOKEN }}" # SHOPIFY_STORE_DOMAIN="${{ env.SHOPIFY_STORE_DOMAIN }}" # env_vars_update_strategy: 'overwrite' - name: 'Use output' run: 'curl "${{ steps.deploy.outputs.url }}"'