Skip to content

Commit

Permalink
chore(websites): Setup preview site workflows (#18924)
Browse files Browse the repository at this point in the history
* feat: add new preview site workflows

* feat: combine workflows, update spellcheck to ignore file

* feat: make reusable workflow

* chore: add new workflow file to spellcheck exclude

* fix: update workflow pathing

* feat: update so we can run the workflow for forks on approval with the github secrets we need

* fix: update excludes text for new file

* fix: yaml syntax

* fix: syntax

* fix: github yaml errors

* fix: spelling

* fix: file naming

* chore: remove sync from types

* Update .github/workflows/build_preview_sites.yml

Co-authored-by: Jesse Szwedko <jesse.szwedko@datadoghq.com>

* feat: update workflows with artifacts, remove netlify files

* fix: clean up workflows

---------

Co-authored-by: Jesse Szwedko <jesse.szwedko@datadoghq.com>
  • Loading branch information
devindford and jszwedko authored Nov 2, 2023
1 parent 2bba40a commit 9d006c7
Show file tree
Hide file tree
Showing 8 changed files with 144 additions and 137 deletions.
3 changes: 3 additions & 0 deletions .github/actions/spelling/excludes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
(?:^|/)(?i)LICEN[CS]E
(?:^|/)3rdparty/
(?:^|/)amplify\.yml$
(?:^|/)build_preview_sites\.yml$
(?:^|/)create_preview_sites\.yml$
(?:^|/)preview_site_trigger\.yml$
(?:^|/)go\.sum$
(?:^|/)package(?:-lock|)\.json$
(?:^|/)Pipfile$
Expand Down
26 changes: 26 additions & 0 deletions .github/workflows/build_preview_sites.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Deploy Vector Preview Sites

on:
workflow_run:
workflows: ["Call Build Preview"]
types:
- completed

jobs:
deploy_vector_preview_site:
uses: ./.github/workflows/create_preview_sites.yml
with:
APP_ID: "d1a7j77663uxsc"
APP_NAME: "vector.dev"

deploy_rust_doc_preview_site:
uses: ./.github/workflows/create_preview_sites.yml
with:
APP_ID: "d1hoyoksbulg25"
APP_NAME: "Rust Doc"

deploy_vrl_playground_preview_site:
uses: ./.github/workflows/create_preview_sites.yml
with:
APP_ID: "d2lr4eds605rpz"
APP_NAME: "VRL Playground"
88 changes: 88 additions & 0 deletions .github/workflows/create_preview_sites.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Create Preview Sites

on:
workflow_call:
inputs:
APP_ID:
description: "App ID for the associated website"
required: true
type: string
APP_NAME:
description: "Application name for the comment"
required: true
type: string

jobs:
create_preview_site:
runs-on: ubuntu-latest
steps:

# Get the artifacts with the PR number and branch name
- name: Download artifact
uses: actions/github-script@v3.1.0
with:
script: |
const fs = require('fs');
const artifacts = await github.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{ github.event.workflow_run.id }},
});
const matchArtifact = artifacts.data.artifacts.filter(artifact => artifact.name == "pr")[0];
const download = await github.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
fs.writeFileSync('${{ github.workspace }}/pr.zip', Buffer.from(download.data));
# Extract the info from the artifact and set variables
- name: Extract PR info from artifact
run: |
unzip pr.zip -d pr
BRANCH_NAME=$(cat ./pr/PR_INFO | grep 'Branch Name' | cut -d ':' -f 2 | xargs)
SANITIZED_BRANCH_NAME=$(echo "$BRANCH_NAME" | sed 's/[\/\.]/-/g')
echo "SANITIZED_BRANCH_NAME=$SANITIZED_BRANCH_NAME" >> $GITHUB_ENV
# Kick off the job in amplify
- name: Deploy Site
env:
REQUEST_TOKEN: ${{ secrets.REQUEST_TOKEN }}
REQUEST_MESSAGE: ${{ secrets.REQUEST_MESSAGE }}
ENDPOINT: ${{ secrets.BUILDER_ENDPOINT }}
run: |
HMAC_KEY=$(echo -n $REQUEST_MESSAGE | openssl dgst -sha256 -hmac "$REQUEST_TOKEN" -binary | od -An -tx1 | tr -d ' \n'; echo)
SIGNATURE="sha256=$HMAC_KEY"
RESPONSE_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST \
-H "Content-Type: application/json" \
-H "X-Hub-Signature: $SIGNATURE" \
-d "{\"app_id\": \"$APP_ID\", \"branch_name\": \"$SANITIZED_BRANCH_NAME\"}" \
"$ENDPOINT")
# check the response code and fail if not 200
if [ "$RESPONSE_CODE" != "200" ]; then
echo "Request failed with response code $RESPONSE_CODE"
exit 1
fi
# Add preview link to comment if all 3 sites successfully start
- name: Comment Preview Link
if: success()
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: actions/github-script@v3
with:
script: |
const prInfo = fs.readFileSync('./pr/PR_INFO', 'utf8');
const prInfoLines = prInfo.split('\n');
const issueNumber = parseInt(prInfoLines[0].split(': ')[1]);
await github.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue_number,
body: `Your preview site for the **${APP_NAME}** will be ready in a few minutes, please allow time for it to build. \n \n Heres your preview link: \n [${APP_NAME} preview](https://${SANITIZED_BRANCH_NAME}.${APP_ID}.amplifyapp.com)`
});
27 changes: 27 additions & 0 deletions .github/workflows/preview_site_trigger.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Call Build Preview

on:
pull_request:
types: [opened, reopened]

jobs:
approval_check:
runs-on: ubuntu-latest
steps:
- name: Echo approval
run: |
echo "Workflow has been allowed to run for PR ${{ github.event.number }}. Setting artifacts and then continuing workflow runs"
# Save the PR number and branch name to an artifact for use in subsequent jobs
- name: Save PR number and Branch name
run: |
mkdir -p ./pr
echo "PR Number: ${{ github.event.number }}" > ./pr/PR_INFO
echo "Branch Name: ${{ github.head_ref }}" >> ./pr/PR_INFO
# Upload the artifact
- name: Upload PR information artifact
uses: actions/upload-artifact@v2
with:
name: pr
path: pr/
17 changes: 0 additions & 17 deletions lib/vector-vrl/web-playground/netlify.toml

This file was deleted.

109 changes: 0 additions & 109 deletions netlify.toml

This file was deleted.

9 changes: 0 additions & 9 deletions rust-doc/netlify.toml

This file was deleted.

2 changes: 0 additions & 2 deletions website/Brewfile.netlify

This file was deleted.

0 comments on commit 9d006c7

Please sign in to comment.