diff --git a/.github/workflows/automation.yml b/.github/workflows/automation.yml index b3ceccf..9431699 100644 --- a/.github/workflows/automation.yml +++ b/.github/workflows/automation.yml @@ -7,6 +7,8 @@ on: jobs: build-and-test: runs-on: ubuntu-latest + env: + GCLOUD_PROJECT_ID: ${{ secrets.GCLOUD_PROJECT_ID }} steps: - name: Install Go @@ -26,8 +28,6 @@ jobs: project_id: ${{secrets.GCLOUD_PROJECT_ID}} - name: Install, Build, Test 🔧 # This runs a series of commands as if building a live version of the project - env: - GCLOUD_PROJECT_ID: ${{ secrets.GCLOUD_PROJECT_ID }} run: | go mod tidy go test github.com/julwrites/ScriptureBot/pkg/utils \ diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 8594c25..fbd2195 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -6,6 +6,13 @@ on: jobs: build-and-deploy: runs-on: ubuntu-latest + env: + GCLOUD_PROJECT_ID: ${{secrets.GCLOUD_PROJECT_ID}} + GCLOUD_REGION: ${{secrets.GCLOUD_REGION}} + ARTIFACT_ID: ${{secrets.GCLOUD_ARTIFACT_REPOSITORY_ID}} + TELEGRAM_ID: ${{secrets.TELEGRAM_ID}} + ADMIN_ID: ${{secrets.TELEGRAM_ADMIN_ID}} + GCLOUD_SERVICE_ACCOUNT: ${{secrets.GCLOUD_SERVICE_ACCOUNT}} steps: - name: Install Go @@ -26,27 +33,18 @@ jobs: - name: Configure gcloud auth with Docker run: | - gcloud auth configure-docker ${{ secrets.GCLOUD_REGION }}-docker.pkg.dev + gcloud auth configure-docker $GCLOUD_REGION-docker.pkg.dev - name: Docker Build and Stage - env: - TELEGRAM_ID: ${{secrets.TELEGRAM_ID}} - ADMIN_ID: ${{secrets.TELEGRAM_ADMIN_ID}} - GCLOUD_PROJECT_ID: ${{secrets.GCLOUD_PROJECT_ID}} - ARTIFACT_ID: ${{secrets.GCLOUD_ARTIFACT_REPOSITORY_ID}} run: | printf "TELEGRAM_ID: \"$TELEGRAM_ID\"\nADMIN_ID: \"$ADMIN_ID\"\nGCLOUD_PROJECT_ID: \"$GCLOUD_PROJECT_ID\"\n" >> secrets.yaml cat secrets.yaml - docker build --build-arg GCLOUD_PROJECT_ID=$GCLOUD_PROJECT_ID -f Dockerfile -t ${{ secrets.GCLOUD_REGION }}-docker.pkg.dev/$GCLOUD_PROJECT_ID/$ARTIFACT_ID/root:latest . - docker push ${{ secrets.GCLOUD_REGION }}-docker.pkg.dev/$GCLOUD_PROJECT_ID/$ARTIFACT_ID/root:latest + docker build --build-arg GCLOUD_PROJECT_ID=$GCLOUD_PROJECT_ID -f Dockerfile -t $GCLOUD_REGION-docker.pkg.dev/$GCLOUD_PROJECT_ID/$ARTIFACT_ID/root:latest . + docker push $GCLOUD_REGION-docker.pkg.dev/$GCLOUD_PROJECT_ID/$ARTIFACT_ID/root:latest - name: Deployment - env: - GCLOUD_PROJECT_ID: ${{secrets.GCLOUD_PROJECT_ID}} - ARTIFACT_ID: ${{secrets.GCLOUD_ARTIFACT_REPOSITORY_ID}} - TELEGRAM_ID: ${{secrets.TELEGRAM_ID}} run: | - gcloud run deploy scripturebot --image ${{ secrets.GCLOUD_REGION }}-docker.pkg.dev/$GCLOUD_PROJECT_ID/$ARTIFACT_ID/root:latest --region ${{ secrets.GCLOUD_REGION }} --allow-unauthenticated - SERVICE_URL=$(gcloud run services describe scripturebot --region ${{ secrets.GCLOUD_REGION }} --format 'value(status.url)') + gcloud run deploy scripturebot --image $GCLOUD_REGION-docker.pkg.dev/$GCLOUD_PROJECT_ID/$ARTIFACT_ID/root:latest --region $GCLOUD_REGION --service-account $GCLOUD_SERVICE_ACCOUNT --allow-unauthenticated + SERVICE_URL=$(gcloud run services describe scripturebot --region $GCLOUD_REGION --format 'value(status.url)') echo "Setting webhook for $SERVICE_URL" go run cmd/webhook/main.go -url "$SERVICE_URL" diff --git a/README.md b/README.md index 23843a5..e856196 100644 --- a/README.md +++ b/README.md @@ -68,4 +68,4 @@ And then uploaded using `docker push us-central1-docker.pkg.dev/${GCLOUD_PROJECT_ID}/scripturebot/root:latest` And finally deployed using -`gcloud run deploy scripturebot --image us-central1-docker.pkg.dev/${GCLOUD_PROJECT_ID}/scripturebot/root:latest --region us-central1` +`gcloud run deploy scripturebot --image us-central1-docker.pkg.dev/${GCLOUD_PROJECT_ID}/scripturebot/root:latest --region us-central1 --service-account ${GCLOUD_SERVICE_ACCOUNT}`