1
1
name : preview
2
2
3
3
on :
4
- workflow_call : ~
4
+ push :
5
+ branches :
6
+ - main
7
+ workflow_call :
8
+ inputs :
9
+ strict :
10
+ type : boolean
11
+ default : true
5
12
6
13
permissions :
7
14
id-token : write
8
- pull-requests : write
9
15
deployments : write
16
+ contents : read
10
17
11
18
jobs :
12
19
deploy :
@@ -20,12 +27,10 @@ jobs:
20
27
script : |
21
28
const { owner, repo } = context.repo;
22
29
const deployment = await github.rest.repos.createDeployment({
23
- issue_number: context.issue.number,
24
30
owner,
25
31
repo,
26
32
ref: context.payload.pull_request.head.ref,
27
- environment: `preview-${context.issue.number}`,
28
- description: `Preview deployment for PR ${context.issue.number}`,
33
+ environment: `docs-preview-${context.issue.number}`,
29
34
auto_merge: false,
30
35
required_contexts: [],
31
36
})
@@ -34,27 +39,38 @@ jobs:
34
39
owner,
35
40
repo,
36
41
state: "in_progress",
37
- description: "Deployment created",
38
42
log_url: `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}?pr=${context.issue.number}`,
39
43
})
40
44
return deployment.data.id
41
45
42
46
- uses : actions/checkout@v4
47
+ with :
48
+ ref : ${{ github.event.pull_request.head.ref }}
43
49
44
50
- uses : actions/download-artifact@v4
51
+ if : github.repository == 'elastic/docs-builder'
45
52
with :
46
53
name : docs-builder-binary
47
54
48
55
# we run our artifact directly please use the prebuild
49
56
# elastic/docs-builder@main GitHub Action for all other repositories!
50
57
- name : Build documentation
58
+ if : github.repository == 'elastic/docs-builder'
51
59
env :
52
- PR_NUMBER : ${{ github.event.pull_request.number }}
60
+ PR_NUMBER :
53
61
run : |
54
62
chmod +x ./docs-builder
55
- ./docs-builder --strict --path-prefix "/${GITHUB_REPOSITORY}/pull/${PR_NUMBER}"
63
+ ./docs-builder --strict --path-prefix "/${GITHUB_REPOSITORY}/pull/${{ github.event.pull_request.number }}"
64
+
65
+ - name : Build documentation
66
+ if : github.repository != 'elastic/docs-builder'
67
+ uses : elastic/docs-builder@main
68
+ continue-on-error : ${{ inputs.strict != 'true' }} # Will be removed after the migration phase
69
+ with :
70
+ prefix : " /${{ github.repository }}/pull/${{ github.event.pull_request.number }}"
71
+ strict : ${{ inputs.strict }}
56
72
57
- - uses : ./ .github/actions/aws-auth
73
+ - uses : elastic/docs-builder/ .github/actions/aws-auth@main
58
74
59
75
- name : Upload to S3
60
76
env :
@@ -65,29 +81,14 @@ jobs:
65
81
66
82
- name : Update deployment status
67
83
uses : actions/github-script@v7
68
- if : steps.deployment.outputs.result
84
+ if : always() && steps.deployment.outputs.result
69
85
with :
70
86
script : |
71
87
await github.rest.repos.createDeploymentStatus({
72
88
owner: context.repo.owner,
73
89
repo: context.repo.repo,
74
90
deployment_id: ${{ steps.deployment.outputs.result }},
75
- state: "success",
76
- description: "Deployment completed",
91
+ state: "${{ job.status == 'success' && 'success' || 'failure' }}",
77
92
environment_url: `https://docs-v3-preview.elastic.dev/${context.repo.owner}/${context.repo.repo}/pull/${context.issue.number}`,
78
93
log_url: `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}?pr=${context.issue.number}`,
79
94
})
80
-
81
- - name : Update Deployment Status on Failure
82
- if : failure() && steps.deployment.outputs.result
83
- uses : actions/github-script@v7
84
- with :
85
- script : |
86
- await github.rest.repos.createDeploymentStatus({
87
- owner: context.repo.owner,
88
- repo: context.repo.repo,
89
- deployment_id: ${{ steps.deployment.outputs.result }},
90
- state: "failure",
91
- description: "Deployment failed",
92
- log_url: `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}?pr=${context.issue.number}`,
93
- })
0 commit comments