-
Notifications
You must be signed in to change notification settings - Fork 193
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
89 changed files
with
1,451 additions
and
53 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
name: preview-env-deploy | ||
on: | ||
pull_request: | ||
types: [labeled, synchronize] | ||
|
||
concurrency: | ||
cancel-in-progress: true | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
|
||
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@v4 | ||
|
||
- 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: Install Dependencies | ||
run: npm ci | ||
|
||
- name: Build Docs | ||
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 }} | ||
|
||
- name: Upload files to Google bucket | ||
env: | ||
BUCKET_NAME: ${{ steps.secrets.outputs.PREVIEW_ENV_BUCKET_NAME }} | ||
run: | | ||
gsutil -m rsync -d -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 }} | ||
env_url: https://${{ steps.secrets.outputs.PREVIEW_ENV_BUCKET_NAME }}/pr-${{ github.event.number }}/index.html | ||
|
||
- name: Shorten commit SHA | ||
run: echo "short_sha=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | ||
|
||
- name: Find previous deployment or tear-down comment | ||
uses: peter-evans/find-comment@v3 | ||
id: find-comment | ||
with: | ||
issue-number: ${{ github.event.number }} | ||
body-includes: <!-- preview-env --> | ||
|
||
- name: Upsert deployment comment | ||
uses: peter-evans/create-or-update-comment@v4 | ||
env: | ||
BUCKET_NAME: ${{ steps.secrets.outputs.PREVIEW_ENV_BUCKET_NAME }} | ||
with: | ||
comment-id: ${{ steps.find-comment.outputs.comment-id }} | ||
issue-number: ${{ github.event.number }} | ||
body: | | ||
<!-- preview-env --> The preview environment relating to the commit ${{ env.short_sha }} has successfully been deployed. You can access it on https://${{ env.BUCKET_NAME }}/pr-${{ github.event.number }}/index.html. | ||
edit-mode: replace |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
name: preview-env-teardown | ||
on: | ||
pull_request: | ||
types: [unlabeled, closed] | ||
|
||
jobs: | ||
tear-down-preview-env: | ||
if: github.event.label.name == 'deploy' || (github.event.action == 'closed' && contains( github.event.pull_request.labels.*.name, 'deploy')) | ||
runs-on: ubuntu-22.04 | ||
timeout-minutes: 20 | ||
name: teardown-preview-env | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Import secrets | ||
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: 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: Remove files from Google bucket | ||
env: | ||
BUCKET_NAME: ${{ steps.secrets.outputs.PREVIEW_ENV_BUCKET_NAME }} | ||
run: | | ||
gsutil -m rm -r gs://$BUCKET_NAME/pr-${{ github.event.number }}/ | ||
- uses: bobheadxi/deployments@v1 | ||
if: always() | ||
name: Deactivate GitHub Deployment environment | ||
with: | ||
step: deactivate-env | ||
token: ${{ github.token }} | ||
env: ${{ github.event.repository.name }} | ||
ref: ${{ github.event.pull_request.head.sha }} | ||
|
||
- name: Find deployment comment | ||
uses: peter-evans/find-comment@v3 | ||
id: find-comment | ||
with: | ||
issue-number: ${{ github.event.number }} | ||
body-includes: <!-- preview-env --> | ||
|
||
- name: Update deployment comment | ||
if: steps.find-comment.outputs.comment-id != '' | ||
uses: peter-evans/create-or-update-comment@v4 | ||
with: | ||
comment-id: ${{ steps.find-comment.outputs.comment-id }} | ||
body: | | ||
<!-- preview-env --> Your preview env has been torn down. | ||
edit-mode: replace |
Oops, something went wrong.