Develop #228
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: 'PR preview to Int' | |
on: | |
pull_request: | |
types: | |
- 'opened' | |
- 'synchronize' | |
- 'reopened' | |
- 'closed' | |
branches: | |
- 'master' | |
jobs: | |
build-push-deploy: | |
name: 'Build and Deploy PR preview to Integration' | |
runs-on: ubuntu-latest | |
if: ${{ github.event.action != 'closed'}} | |
# Checkout the repository to the GitHub Actions runner | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
# gcloud CLI setup | |
- name: Login to GCP | |
uses: google-github-actions/setup-gcloud@v0 | |
with: | |
service_account_key: ${{ secrets.SKYVIEWER_INT_SERVICE_ACCOUNT }} | |
project_id: edc-int-6c5e | |
export_default_credentials: true | |
- name: Build Container Image | |
run: |- | |
docker build \ | |
-t "gcr.io/edc-int-6c5e/rubin-obs-client:${{ github.sha }}" \ | |
--build-arg NEXT_PUBLIC_API_URL=https://api-int.rubinobs.dev/api \ | |
--build-arg EDC_LOGGER_API_URL=https://us-central1-skyviewer.cloudfunctions.net/edc-logger \ | |
--build-arg NEXT_PUBLIC_DEBUG_LOGGING=false \ | |
--build-arg CLOUD_ENV=INT \ | |
--build-arg NEXT_PUBLIC_BASE_URL=https://int.rubinobs.dev \ | |
--build-arg NEXT_PUBLIC_GOOGLE_APP_ID=688095955960-t0fpaj4ec3gh5vsr9lhg8govapk2oeo9.apps.googleusercontent.com \ | |
--build-arg NEXT_PUBLIC_CONTACT_FORM_POST_URL=https://api-int.rubinobs.dev/actions/contact-form/send \ | |
--build-arg NEXT_PUBLIC_PLAUSIBLE_DOMAIN= \ | |
--build-arg NEXT_PREVIEW_SLUG=preview-in-craft-cms \ | |
--build-arg NEXT_PUBLIC_EFD_URL=https://hasura-e3g4rcii3q-uc.a.run.app/v1/graphql \ | |
--build-arg NEXT_PUBLIC_HASURA_SECRET=_qfq_tMbyR4brJ@KHCzuJRU7 \ | |
--build-arg NEXT_PUBLIC_RELEASE_URL=`https://noirlab.edu/public/api/v2/releases/{{ID}}/?lang={{SITE}}&translation_mode=fallback` \ | |
. | |
- name: Configure Docker Auth | |
run: gcloud --quiet auth configure-docker | |
- name: Push Container Image to GCR | |
run: docker push gcr.io/edc-int-6c5e/rubin-obs-client:${{ github.sha }} | |
- name: Format version name | |
id: version_name | |
run: echo "version_name=$(echo \"${{ github.head_ref }}\" | tr -cd '[:alnum:]' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV | |
- name: Get app.yaml | |
run: gcloud secrets versions access latest --secret=rubin-obs-client-appyaml > app.yaml | |
- name: Deploy branch-tagged version to App Engine | |
run: |- | |
gcloud app deploy app.yaml \ | |
--image-url=gcr.io/edc-int-6c5e/rubin-obs-client:${{ github.sha }} \ | |
--version=${{ env.version_name }} \ | |
--no-promote \ | |
--project=edc-int-6c5e | |
- name: Get the version URL | |
id: get_version | |
run: echo "version_url=$(gcloud app versions list --uri --service=default --filter=version.id:${{ env.version_name }})" >> $GITHUB_ENV | |
# Create or update a comment with the URL | |
- name: Find Comment | |
uses: peter-evans/find-comment@v1 | |
id: fc | |
with: | |
issue-number: ${{ github.event.pull_request.number }} | |
comment-author: 'github-actions[bot]' | |
body-includes: A preview of this PR | |
- name: Create or update a comment with the URL to the PR | |
uses: peter-evans/create-or-update-comment@v1 | |
with: | |
comment-id: ${{ steps.fc.outputs.comment-id }} | |
issue-number: ${{ github.event.pull_request.number }} | |
body: | | |
A preview of this PR will be available at ${{ env.version_url }} until the request is closed. | |
reactions: '+1' | |
cleanup: | |
name: 'Cleanup PR Preview' | |
runs-on: ubuntu-latest | |
if: ${{ github.event.action == 'closed'}} | |
# Checkout the repository to the GitHub Actions runner | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
# gcloud CLI setup | |
- name: Login to GCP | |
uses: google-github-actions/setup-gcloud@v0 | |
with: | |
service_account_key: ${{ secrets.SKYVIEWER_INT_SERVICE_ACCOUNT }} | |
project_id: edc-int-6c5e | |
export_default_credentials: true | |
- name: Format version name | |
id: version_name | |
run: echo "version_name=$(echo \"${{ github.head_ref }}\" | tr -cd '[:alnum:]' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV | |
# Destruct! | |
- name: Destroy version | |
run: gcloud app versions delete ${{ env.version_name }} --service=default |