Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .github/workflows/preview-cleanup.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
name: preview-cleanup

on:
workflow_call: ~
pull_request_target:
types: [closed]

permissions:
deployments: write
id-token: write
contents: read

jobs:
cleanup:
destroy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/aws-auth
- uses: elastic/docs-builder/.github/actions/aws-auth@main
- name: Delete s3 objects
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
Expand All @@ -28,7 +30,7 @@ jobs:
const deployments = await github.rest.repos.listDeployments({
owner,
repo,
environment: `preview-${context.issue.number}`
environment: `docs-preview-${context.issue.number}`
});
for (const deployment of deployments.data) {
await github.rest.repos.createDeploymentStatus({
Expand Down
53 changes: 27 additions & 26 deletions .github/workflows/preview.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
name: preview

on:
workflow_call: ~
push:
branches:
- main
workflow_call:
inputs:
strict:
type: boolean
default: true

permissions:
id-token: write
pull-requests: write
deployments: write
contents: read

jobs:
deploy:
Expand All @@ -20,12 +27,10 @@ jobs:
script: |
const { owner, repo } = context.repo;
const deployment = await github.rest.repos.createDeployment({
issue_number: context.issue.number,
owner,
repo,
ref: context.payload.pull_request.head.ref,
environment: `preview-${context.issue.number}`,
description: `Preview deployment for PR ${context.issue.number}`,
environment: `docs-preview-${context.issue.number}`,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 on docs prefix.

auto_merge: false,
required_contexts: [],
})
Expand All @@ -34,27 +39,38 @@ jobs:
owner,
repo,
state: "in_progress",
description: "Deployment created",
log_url: `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}?pr=${context.issue.number}`,
})
return deployment.data.id

- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}

- uses: actions/download-artifact@v4
if: github.repository == 'elastic/docs-builder'
with:
name: docs-builder-binary

# we run our artifact directly please use the prebuild
# elastic/docs-builder@main GitHub Action for all other repositories!
- name: Build documentation
if: github.repository == 'elastic/docs-builder'
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
PR_NUMBER:
run: |
chmod +x ./docs-builder
./docs-builder --strict --path-prefix "/${GITHUB_REPOSITORY}/pull/${PR_NUMBER}"
./docs-builder --strict --path-prefix "/${GITHUB_REPOSITORY}/pull/${{ github.event.pull_request.number }}"

- name: Build documentation
if: github.repository != 'elastic/docs-builder'
uses: elastic/docs-builder@main
continue-on-error: ${{ inputs.strict != 'true' }} # Will be removed after the migration phase
with:
prefix: "/${{ github.repository }}/pull/${{ github.event.pull_request.number }}"
strict: ${{ inputs.strict }}

- uses: ./.github/actions/aws-auth
- uses: elastic/docs-builder/.github/actions/aws-auth@main

- name: Upload to S3
env:
Expand All @@ -65,29 +81,14 @@ jobs:

- name: Update deployment status
uses: actions/github-script@v7
if: steps.deployment.outputs.result
if: always() && steps.deployment.outputs.result
with:
script: |
await github.rest.repos.createDeploymentStatus({
owner: context.repo.owner,
repo: context.repo.repo,
deployment_id: ${{ steps.deployment.outputs.result }},
state: "success",
description: "Deployment completed",
state: "${{ job.status == 'success' && 'success' || 'failure' }}",
environment_url: `https://docs-v3-preview.elastic.dev/${context.repo.owner}/${context.repo.repo}/pull/${context.issue.number}`,
log_url: `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}?pr=${context.issue.number}`,
})

- name: Update Deployment Status on Failure
if: failure() && steps.deployment.outputs.result
uses: actions/github-script@v7
with:
script: |
await github.rest.repos.createDeploymentStatus({
owner: context.repo.owner,
repo: context.repo.repo,
deployment_id: ${{ steps.deployment.outputs.result }},
state: "failure",
description: "Deployment failed",
log_url: `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}?pr=${context.issue.number}`,
})