chore(preview-envs): Add preview env workflows to camunda docs repo #87
Workflow file for this run
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: preview-env-deploy | |
on: | |
pull_request: | |
types: [labeled, synchronize] | |
jobs: | |
deploy-preview: | |
if: github.event.pull_request.state != 'closed' && (contains( github.event.label.name, 'deploy') || contains( github.event.pull_request.labels.*.name, 'deploy')) | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
name: deploy-preview-env | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Import secrets from Vault | |
id: secrets | |
uses: hashicorp/vault-action@d1720f055e0635fd932a1d2a48f87a666a57906c | |
with: | |
url: ${{ secrets.VAULT_ADDR }} | |
method: approle | |
roleId: ${{ secrets.VAULT_ROLE_ID }} | |
secretId: ${{ secrets.VAULT_SECRET_ID }} | |
secrets: | | |
secret/data/products/camunda-docs/ci/preview-environment PREVIEW_ENV_BUCKET_NAME; | |
secret/data/products/camunda-docs/ci/preview-environment PREVIEW_ENV_GCLOUD_SA_KEY; | |
- name: Find env tear down comment | |
uses: peter-evans/find-comment@v1 | |
id: find-teardown-comment | |
with: | |
issue-number: ${{ github.event.number }} | |
body-includes: Your preview env has been torn down. | |
- name: Update env tear down comment | |
if: steps.find-teardown-comment.outputs.comment-id != '' | |
uses: peter-evans/create-or-update-comment@v4 | |
env: | |
BUCKET_NAME: ${{ steps.secrets.outputs.PREVIEW_ENV_BUCKET_NAME }} | |
with: | |
comment-id: ${{ steps.find-teardown-comment.outputs.comment-id }} | |
body: | | |
Preview environment has successfully been deployed. You can access it on https://${{ env.BUCKET_NAME }}/pr-${{ github.event.number }}/index.html. | |
edit-mode: replace | |
- name: Find deployment comment | |
uses: peter-evans/find-comment@v1 | |
id: find-deployment-comment | |
env: | |
BUCKET_NAME: ${{ steps.secrets.outputs.PREVIEW_ENV_BUCKET_NAME }} | |
with: | |
issue-number: ${{ github.event.number }} | |
body-includes: Preview environment has successfully been deployed. You can access it on https://${{ env.BUCKET_NAME }}/pr-${{ github.event.number }}/index.html. | |
- name: Install Dependencies | |
run: npm ci | |
- name: Build | |
env: | |
NODE_OPTIONS: --max_old_space_size=8192 | |
DOCS_SITE_URL: https://${{ steps.secrets.outputs.PREVIEW_ENV_BUCKET_NAME }} | |
DOCS_SITE_BASE_URL: /pr-${{ github.event.number }}/ | |
run: npm run build | |
- name: Authenticate with Google Cloud | |
uses: google-github-actions/auth@v2 | |
with: | |
credentials_json: ${{ steps.secrets.outputs.PREVIEW_ENV_GCLOUD_SA_KEY }} | |
- name: Set up Cloud SDK | |
uses: google-github-actions/setup-gcloud@v2 | |
- name: start deployment | |
uses: bobheadxi/deployments@v1 | |
id: deployment | |
with: | |
step: start | |
token: "${{ github.token }}" | |
env: ${{ github.event.repository.name }} | |
ref: ${{ github.event.pull_request.head.sha }} | |
# If the deployment comment is found, remove the old static files from the bucket | |
# before uploading the new build | |
- name: Remove files from Google bucket from previous deployment | |
if: steps.find-deployment-comment.outputs.comment-id != '' && steps.find-teardown-comment.outputs.comment-id == '' | |
env: | |
BUCKET_NAME: ${{ steps.secrets.outputs.PREVIEW_ENV_BUCKET_NAME }} | |
run: | | |
gcloud config set pass_credentials_to_gsutil true | |
gsutil -m rm -r gs://$BUCKET_NAME/pr-${{ github.event.number }}/ | |
- name: Upload files to google bucket | |
env: | |
BUCKET_NAME: ${{ steps.secrets.outputs.PREVIEW_ENV_BUCKET_NAME }} | |
run: | | |
gcloud config set pass_credentials_to_gsutil true | |
gsutil -m cp -R build/* gs://$BUCKET_NAME/pr-${{ github.event.number }} | |
- uses: bobheadxi/deployments@v1 | |
with: | |
step: finish | |
token: "${{ github.token }}" | |
status: ${{ job.status }} | |
env: ${{ steps.deployment.outputs.env }} | |
deployment_id: ${{ steps.deployment.outputs.deployment_id }} | |
- name: Create comment | |
if: steps.find-deployment-comment.outputs.comment-id == '' | |
uses: peter-evans/create-or-update-comment@v4 | |
env: | |
BUCKET_NAME: ${{ steps.secrets.outputs.PREVIEW_ENV_BUCKET_NAME }} | |
with: | |
issue-number: ${{ github.event.number }} | |
body: | | |
Preview environment has successfully been deployed. You can access it on https://${{ env.BUCKET_NAME }}/pr-${{ github.event.number }}/index.html. | |
edit-mode: replace |