diff --git a/.github/workflows/cicd-branch-main.yml b/.github/workflows/cicd-branch-main.yml index d3fba9c..bb3ae84 100644 --- a/.github/workflows/cicd-branch-main.yml +++ b/.github/workflows/cicd-branch-main.yml @@ -12,7 +12,6 @@ env: jobs: cicd: - # Add 'id-token' with the intended permissions for workload identity federation permissions: contents: "read" id-token: "write" @@ -22,81 +21,32 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + # - name: Set up Docker Buildx + # uses: docker/setup-buildx-action@v3 - name: Google Auth id: google-auth uses: "google-github-actions/auth@v1" with: token_format: "access_token" - workload_identity_provider: "${{ secrets.GOOGLE_WORKLOAD_IDENTITY_PROVIDER }}" # e.g. - projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider - service_account: "${{ secrets.GOOGLE_SERVICE_ACCOUNT }}" # e.g. - my-service-account@my-project.iam.gserviceaccount.com + workload_identity_provider: "${{ secrets.GOOGLE_WORKLOAD_IDENTITY_PROVIDER }}" + service_account: "${{ secrets.GOOGLE_SERVICE_ACCOUNT }}" - # NOTE: Alternative option - authentication via credentials json - # - name: Google Auth - # id: auth - # uses: 'google-github-actions/auth@v0' + # - name: Login to Docker Hub + # uses: docker/login-action@v3 # with: - # credentials_json: '${{ secrets.GCP_CREDENTIALS }}' - # token_format: 'access_token' + # username: ${{ secrets.DOCKERHUB_USERNAME }} + # password: ${{ secrets.DOCKERHUB_TOKEN }} - # BEGIN - Docker auth and build (NOTE: If you already have a container image, these Docker steps can be omitted) - - # Authenticate Docker to Google Cloud Artifact Registry - # - name: Docker Auth - # id: docker-auth - # uses: "docker/login-action@v3" - # with: - # username: "oauth2accesstoken" - # password: "${{ steps.google-auth.outputs.access_token }}" - # registry: "${{ env.GAR_LOCATION }}-docker.pkg.dev" - - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - # NOTE: Alternative option - authentication via credentials json - # - name: Docker Auth - # id: docker-auth - # uses: 'docker/login-action@v1' - # with: - # registry: ${{ env.GAR_LOCATION }}-docker.pkg.dev - # username: _json_key - # password: ${{ secrets.GCP_CREDENTIALS }} - - # - name: Build and Push Container - # run: |- - # docker build -t "${{ env.GAR_LOCATION }}-docker.pkg.dev/${{ env.GOOGLE_PROJECT_ID }}/${{ env.REPOSITORY }}/${{ vars.APP_NAME }}:${{ github.sha }}" ./ - # docker push "${{ env.GAR_LOCATION }}-docker.pkg.dev/${{ env.GOOGLE_PROJECT_ID }}/${{ env.REPOSITORY }}/${{ vars.APP_NAME }}:${{ github.sha }}" - - - name: Build and push - uses: docker/build-push-action@v5 - with: - build-args: | - DISCORD_BOT_TOKEN=${{ secrets.DISCORD_BOT_TOKEN }} - DISCORD_BOT_LOG_GUILD_ID=${{ vars.DISCORD_BOT_LOG_GUILD_ID }} - DISCORD_BOT_LOG_CHANNEL_ID=${{ vars.DISCORD_BOT_LOG_CHANNEL_ID }} - tags: ${{ env.IMAGE_TAG }} - push: true - - # END - Docker auth and build - - # - name: Deploy to Cloud Run - # id: deploy - # uses: google-github-actions/deploy-cloudrun@v1 + # - name: Build and push + # uses: docker/build-push-action@v5 # with: - # service: ${{ vars.APP_NAME }} - # region: ${{ env.REGION }} - # # NOTE: If using a pre-built image, update the image name here - # # image: ${{ env.GAR_LOCATION }}-docker.pkg.dev/${{ env.GOOGLE_PROJECT_ID }}/${{ env.REPOSITORY }}/${{ vars.APP_NAME }}:${{ github.sha }} - # image: docker.io/${{ secrets.DOCKERHUB_USERNAME }}/${{ vars.APP_NAME }}:${{ github.ref_type }}-${{ github.ref_name }} - # # NOTE: You can also set env variables here: - # # env_vars: | - # # NODE_ENV=production - # # TOKEN_EXPIRE=6400 + # build-args: | + # DISCORD_BOT_TOKEN=${{ secrets.DISCORD_BOT_TOKEN }} + # DISCORD_BOT_LOG_GUILD_ID=${{ vars.DISCORD_BOT_LOG_GUILD_ID }} + # DISCORD_BOT_LOG_CHANNEL_ID=${{ vars.DISCORD_BOT_LOG_CHANNEL_ID }} + # tags: ${{ env.IMAGE_TAG }} + # push: true - name: Deploy to Compute engine id: deploy @@ -105,13 +55,14 @@ jobs: instance_name: container-runner-main zone: asia-northeast3-a ssh_private_key: "${{ secrets.GCP_SSH_PRIVATE_KEY }}" + # command: |- + # "docker pull ${{ env.IMAGE_TAG }} \ + # && docker stop $(docker ps -aq) \ + # && docker run ${{ env.IMAGE_TAG }} \ + # && docker image prune -a" command: |- - "docker pull ${{ env.IMAGE_TAG }} \ - && docker stop $(docker ps -aq) \ - && docker run ${{ env.IMAGE_TAG }} \ - && docker image prune -a" + whoami && docker help - # If required, use the Cloud Run url output in later steps - name: Show Output run: |- echo ${{ steps.deploy.stdout }}