Skip to content

Commit 4459470

Browse files
authored
Merge branch 'main' into fix/image_scope_emit_level
2 parents 8616bf6 + 45feb69 commit 4459470

File tree

381 files changed

+131565
-4811
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

381 files changed

+131565
-4811
lines changed

.github/actions/aws-auth/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ runs:
3737
with open(os.environ["GITHUB_OUTPUT"], "a") as f:
3838
f.write(f"result=arn:aws:iam::{os.environ["AWS_ACCOUNT_ID"]}:role/{prefix}{hash}")
3939
- name: Configure AWS Credentials
40-
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
40+
uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df # v4.2.1
4141
with:
4242
role-to-assume: ${{ steps.role_arn.outputs.result }}
4343
aws-region: ${{ inputs.aws_region }}

.github/actions/bootstrap/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,6 @@ runs:
3535
- uses: actions/setup-node@v4
3636
with:
3737
cache: npm
38-
cache-dependency-path: src/Elastic.Markdown/package-lock.json
38+
cache-dependency-path: src/Elastic.Documentation.Site/package-lock.json
3939
node-version-file: .nvmrc
4040

.github/dependabot.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ updates:
1616
interval: 'weekly'
1717
day: 'monday'
1818
time: '08:00'
19+
groups:
20+
tailwindcss:
21+
patterns:
22+
- 'tailwindcss'
23+
- '@tailwindcss/postcss'
24+
- 'prettier-plugin-tailwindcss'
1925
labels:
2026
- chore
2127
- package-ecosystem: nuget
@@ -24,5 +30,10 @@ updates:
2430
interval: 'weekly'
2531
day: 'monday'
2632
time: '08:00'
33+
groups:
34+
system-io-abstractions:
35+
patterns:
36+
- 'System.IO.Abstractions'
37+
- 'System.IO.Abstractions.*'
2738
labels:
2839
- chore
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
# This workflow is used to build the link-index-updater
3+
# lambda function bootstrap binary that can be deployed to AWS Lambda.
4+
name: Build Link Index Updater Lambda
5+
6+
on:
7+
workflow_dispatch:
8+
workflow_call:
9+
inputs:
10+
ref:
11+
required: false
12+
type: string
13+
default: ${{ github.ref }}
14+
15+
jobs:
16+
build:
17+
runs-on: ubuntu-latest
18+
env:
19+
BINARY_PATH: .artifacts/docs-lambda-index-publisher/release_linux-x64/bootstrap
20+
steps:
21+
- uses: actions/checkout@v4
22+
with:
23+
ref: ${{ inputs.ref }}
24+
- name: Amazon Linux 2023 build
25+
run: |
26+
docker build . -t publish-links-index:latest -f src/infra/docs-lambda-index-publisher/lambda.DockerFile
27+
- name: Get bootstrap binary
28+
run: |
29+
docker cp $(docker create --name tc publish-links-index:latest):/app/.artifacts/publish ./.artifacts && docker rm tc
30+
- name: Inspect bootstrap binary
31+
run: |
32+
tree .artifacts
33+
stat "${BINARY_PATH}"
34+
- name: Archive artifact
35+
id: upload-artifact
36+
uses: actions/upload-artifact@v4
37+
with:
38+
name: link-index-updater-lambda-binary
39+
retention-days: 1
40+
if-no-files-found: error
41+
path: ${{ env.BINARY_PATH }}

.github/workflows/pr.yml renamed to .github/workflows/ci.yml

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
name: PR
1+
name: ci
22

33
on:
4+
push:
5+
branches:
6+
- main
47
pull_request:
58

69
permissions:
@@ -14,7 +17,7 @@ env:
1417
NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages
1518

1619
jobs:
17-
validate-navigation:
20+
validate-assembler:
1821
runs-on: ubuntu-latest
1922
steps:
2023
- uses: actions/checkout@v4
@@ -23,34 +26,27 @@ jobs:
2326
id: bootstrap
2427
uses: ./.github/actions/bootstrap
2528

26-
- name: Build
27-
run: dotnet run --project src/docs-assembler -c release -- navigation validate
29+
- name: Validate Navigation
30+
run: dotnet run --project src/tooling/docs-assembler -c release -- navigation validate
31+
32+
- name: Validate Content Sources
33+
run: dotnet run --project src/tooling/docs-assembler -c release -- content-source validate
2834

2935
build-lambda:
30-
runs-on: ubuntu-latest
31-
steps:
32-
- uses: actions/checkout@v4
33-
- name: Amazon Linux 2023 build
34-
run: |
35-
docker build . -t publish-links-index:latest -f src/infra/docs-lambda-index-publisher/lambda.DockerFile
36-
- name: Get bootstrap binary
37-
run: |
38-
docker cp $(docker create --name tc publish-links-index:latest):/app/.artifacts/publish ./.artifacts && docker rm tc
39-
tree .artifacts
40-
stat .artifacts/docs-lambda-index-publisher/release_linux-x64/bootstrap
41-
36+
uses: ./.github/workflows/build-link-index-updater-lambda.yml
37+
4238
lint:
4339
runs-on: ubuntu-latest
4440
defaults:
4541
run:
46-
working-directory: src/Elastic.Markdown
42+
working-directory: src/Elastic.Documentation.Site
4743
steps:
4844
- uses: actions/checkout@v4
4945

5046
- uses: actions/setup-node@v4
5147
with:
5248
cache: npm
53-
cache-dependency-path: src/Elastic.Markdown/package-lock.json
49+
cache-dependency-path: src/Elastic.Documentation.Site/package-lock.json
5450
node-version-file: .nvmrc
5551

5652
- name: Install dependencies

.github/workflows/preview-build.yml

Lines changed: 88 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ on:
1010
branches:
1111
- main
1212
- master
13+
# TODO remove these need to be added to individual repositories
14+
- '\d+.\d+.\d+'
15+
- '\d+.\d+'
16+
- '\d+.x'
17+
tags:
18+
- 'v?\d+.\d+.\d+'
19+
- 'v?\d+.\d+'
1320
workflow_call:
1421
inputs:
1522
strict:
@@ -44,6 +51,44 @@ permissions:
4451
pull-requests: read
4552

4653
jobs:
54+
match:
55+
if: github.event.repository.fork == false # Skip running the job on the fork itself (It still runs on PRs on the upstream from forks)
56+
concurrency:
57+
group: ${{ github.workflow }}-${{ github.event.pull_request.head.ref || github.ref }}
58+
cancel-in-progress: ${{ startsWith(github.event_name, 'pull_request') }}
59+
runs-on: ubuntu-latest
60+
outputs:
61+
content-source-match: ${{ steps.event-check.outputs.content-source-match != '' && steps.event-check.outputs.content-source-match || steps.match.outputs.content-source-match }}
62+
content-source-next: ${{ steps.event-check.outputs.content-source-next != '' && steps.event-check.outputs.content-source-next || steps.match.outputs.content-source-next }}
63+
content-source-current: ${{ steps.event-check.outputs.content-source-current != '' && steps.event-check.outputs.content-source-current || steps.match.outputs.content-source-current }}
64+
content-source-speculative: ${{ steps.event-check.outputs.content-source-speculative != '' && steps.event-check.outputs.content-source-speculative || steps.match.outputs.content-source-speculative }}
65+
steps:
66+
- name: Not a push event
67+
id: event-check
68+
if: contains(fromJSON('["merge_group", "pull_request", "pull_request_target"]'), github.event_name)
69+
# we always want to run for pull requests, but we do not want to indicate its either content source
70+
run: |
71+
echo "content-source-match=true" >> $GITHUB_OUTPUT
72+
echo "content-source-next=false" >> $GITHUB_OUTPUT
73+
echo "content-source-current=false" >> $GITHUB_OUTPUT
74+
echo "content-source-speculative=false" >> $GITHUB_OUTPUT
75+
- name: Match for push events
76+
id: match
77+
if: contains(fromJSON('["push"]'), github.event_name)
78+
uses: elastic/docs-builder/actions/assembler-match@main
79+
with:
80+
ref_name: ${{ github.ref_name }}
81+
repository: ${{ github.repository }}
82+
- name: Debug
83+
run: |
84+
echo "Non sensitive data, echo'ing here temporarily to validate this job before connecting it further into the build job"
85+
echo "content-source-match=${{ steps.event-check.outputs.content-source-match != '' && steps.event-check.outputs.content-source-match || steps.match.outputs.content-source-match }}"
86+
echo "content-source-next=${{ steps.event-check.outputs.content-source-next != '' && steps.event-check.outputs.content-source-next || steps.match.outputs.content-source-next }}"
87+
echo "content-source-current=${{ steps.event-check.outputs.content-source-current != '' && steps.event-check.outputs.content-source-current || steps.match.outputs.content-source-current }}"
88+
echo "content-source-speculative=${{ steps.event-check.outputs.content-source-speculative != '' && steps.event-check.outputs.content-source-speculative || steps.match.outputs.content-source-speculative }}"
89+
echo "ref=${{ github.ref_name }}"
90+
echo "repo=${{ github.repository }}"
91+
4792
build:
4893
if: github.event.repository.fork == false # Skip running the job on the fork itself (It still runs on PRs on the upstream from forks)
4994
concurrency:
@@ -52,30 +97,36 @@ jobs:
5297
runs-on: ubuntu-latest
5398
env:
5499
GITHUB_PR_REF_NAME: ${{ github.event.pull_request.head.ref }}
100+
MATCH: ${{ needs.match.outputs.content-source-match }}
101+
needs: [ match ]
55102
steps:
56103

57104
- name: Checkout
58-
if: contains(fromJSON('["push", "merge_group", "workflow_dispatch"]'), github.event_name)
105+
if: env.MATCH == 'true' && (contains(fromJSON('["push", "merge_group", "workflow_dispatch"]'), github.event_name))
59106
uses: actions/checkout@v4
60107
with:
61108
ref: ${{ github.event.pull_request.head.sha || github.ref }}
62109

63110
- name: Get changed files
64-
if: contains(fromJSON('["merge_group", "pull_request", "pull_request_target"]'), github.event_name)
111+
if: env.MATCH == 'true' && (contains(fromJSON('["merge_group", "pull_request", "pull_request_target"]'), github.event_name))
65112
id: check-files
66113
uses: tj-actions/changed-files@2f7c5bfce28377bc069a65ba478de0a74aa0ca32 # v46.0.1
67114
with:
68115
files: ${{ inputs.path-pattern != '' && inputs.path-pattern || '**' }}
69116

70117
- name: Checkout
71-
if: startsWith(github.event_name, 'pull_request') && steps.check-files.outputs.any_modified == 'true'
118+
if: env.MATCH == 'true' && (startsWith(github.event_name, 'pull_request') && steps.check-files.outputs.any_modified == 'true')
72119
uses: actions/checkout@v4
73120
with:
74121
ref: ${{ github.event.pull_request.head.sha || github.ref }}
75122
persist-credentials: false
76123

77124
- name: Create Deployment
78-
if: contains(fromJSON('["push", "workflow_dispatch"]'), github.event_name) || (steps.check-files.outputs.any_modified == 'true' && startsWith(github.event_name, 'pull_request'))
125+
if: |
126+
env.MATCH == 'true' &&
127+
(contains(fromJSON('["push", "workflow_dispatch"]'), github.event_name)
128+
|| (steps.check-files.outputs.any_modified == 'true' && startsWith(github.event_name, 'pull_request'))
129+
)
79130
uses: actions/github-script@v7
80131
id: deployment
81132
env:
@@ -108,7 +159,7 @@ jobs:
108159
return deployment.data.id
109160
110161
- name: Generate env.PATH_PREFIX
111-
if: steps.deployment.outputs.result
162+
if: env.MATCH == 'true' && (steps.deployment.outputs.result)
112163
env:
113164
PR_NUMBER: ${{ github.event.pull_request.number }}
114165
GITHUB_REF_NAME: ${{ github.ref_name }}
@@ -119,10 +170,6 @@ jobs:
119170
;;
120171
"push" | "workflow_dispatch")
121172
echo "PATH_PREFIX=/${GITHUB_REPOSITORY}/tree/${GITHUB_REF_NAME}" >> $GITHUB_ENV
122-
if [[ ! "${GITHUB_REF_NAME}" =~ ^(main|master|16\.x)$ ]]; then
123-
echo "Unsupported ref name: '${GITHUB_REF_NAME}'";
124-
exit 1;
125-
fi
126173
;;
127174
*)
128175
echo "Unsupported event: '${GITHUB_EVENT_NAME}'";
@@ -131,18 +178,22 @@ jobs:
131178
esac
132179
133180
- name: Bootstrap Action Workspace
134-
if: github.repository == 'elastic/docs-builder' && steps.deployment.outputs.result
181+
if: env.MATCH == 'true' && (github.repository == 'elastic/docs-builder' && steps.deployment.outputs.result)
135182
uses: elastic/docs-builder/.github/actions/bootstrap@main
136183

137-
# we run our artifact directly please use the prebuild
184+
# we run our artifact directly, please use the prebuild
138185
# elastic/docs-builder@main GitHub Action for all other repositories!
139186
- name: Build documentation
140-
if: github.repository == 'elastic/docs-builder' && steps.deployment.outputs.result
187+
if: env.MATCH == 'true' && (github.repository == 'elastic/docs-builder' && steps.deployment.outputs.result)
141188
run: |
142-
dotnet run --project src/docs-builder -- --strict --path-prefix "${PATH_PREFIX}"
189+
dotnet run --project src/tooling/docs-builder -- --strict --path-prefix "${PATH_PREFIX}"
143190
144191
- name: Build documentation
145-
if: github.repository != 'elastic/docs-builder' && (steps.deployment.outputs.result || (steps.check-files.outputs.any_modified == 'true' && github.event_name == 'merge_group'))
192+
if: |
193+
env.MATCH == 'true' &&
194+
(github.repository != 'elastic/docs-builder' &&
195+
(steps.deployment.outputs.result || (steps.check-files.outputs.any_modified == 'true' && github.event_name == 'merge_group'))
196+
)
146197
uses: elastic/docs-builder@main
147198
id: docs-build
148199
continue-on-error: ${{ fromJSON(inputs.continue-on-error != '' && inputs.continue-on-error || 'false') }}
@@ -152,36 +203,50 @@ jobs:
152203
metadata-only: ${{ fromJSON(inputs.metadata-only != '' && inputs.metadata-only || 'true') }}
153204

154205
- name: 'Validate inbound links'
155-
if: ${{ !cancelled() && steps.docs-build.outputs.skip != 'true' && (steps.deployment.outputs.result || (steps.check-files.outputs.any_modified == 'true' && github.event_name == 'merge_group')) }}
206+
if: |
207+
env.MATCH == 'true' &&
208+
(!cancelled() && steps.docs-build.outputs.skip != 'true'
209+
&& (steps.deployment.outputs.result || (steps.check-files.outputs.any_modified == 'true' && github.event_name == 'merge_group'))
210+
)
156211
uses: elastic/docs-builder/actions/validate-inbound-local@main
157212

158213
- name: 'Validate local path prefixes against those claimed by global navigation.yml'
159-
if: ${{ !cancelled() && steps.docs-build.outputs.skip != 'true' && (steps.deployment.outputs.result || (steps.check-files.outputs.any_modified == 'true' && github.event_name == 'merge_group')) }}
214+
if: |
215+
env.MATCH == 'true' &&
216+
(!cancelled() && steps.docs-build.outputs.skip != 'true' &&
217+
(steps.deployment.outputs.result || (steps.check-files.outputs.any_modified == 'true' && github.event_name == 'merge_group'))
218+
)
160219
uses: elastic/docs-builder/actions/validate-path-prefixes-local@main
161220

162221
- uses: elastic/docs-builder/.github/actions/aws-auth@main
163222
if: ${{ !cancelled() && steps.docs-build.outputs.skip != 'true' && steps.deployment.outputs.result }}
164223

165224
- name: Upload to S3
166225
id: s3-upload
167-
if: ${{ !cancelled() && steps.docs-build.outputs.skip != 'true' && steps.deployment.outputs.result }}
226+
if: |
227+
env.MATCH == 'true' &&
228+
(!cancelled() && steps.docs-build.outputs.skip != 'true' && steps.deployment.outputs.result)
168229
run: |
169230
aws s3 sync .artifacts/docs/html "s3://elastic-docs-v3-website-preview${PATH_PREFIX}" --delete --no-follow-symlinks
170231
aws cloudfront create-invalidation \
171232
--distribution-id EKT7LT5PM8RKS \
172233
--paths "${PATH_PREFIX}" "${PATH_PREFIX}/*"
173234
174235
- name: Update Link Index
175-
if: contains(fromJSON('["push", "workflow_dispatch"]'), github.event_name) && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master') && steps.s3-upload.outcome == 'success'
236+
if: |
237+
env.MATCH == 'true' &&
238+
(contains(fromJSON('["push", "workflow_dispatch"]'), github.event_name)
239+
&& (
240+
needs.match.outputs.content-source-current == 'true'
241+
|| needs.match.outputs.content-source-next == 'true'
242+
|| needs.match.outputs.content-source-speculative == 'true'
243+
)
244+
&& steps.s3-upload.outcome == 'success')
176245
uses: elastic/docs-builder/actions/update-link-index@main
177246

178-
- name: Update Reference Index
179-
if: contains(fromJSON('["push", "workflow_dispatch"]'), github.event_name) && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master') && steps.s3-upload.outcome == 'success'
180-
uses: elastic/docs-builder/actions/update-reference-index@main
181-
182247
- name: Update deployment status
183248
uses: actions/github-script@v7
184-
if: always() && steps.deployment.outputs.result
249+
if: env.MATCH == 'true' && (always() && steps.deployment.outputs.result)
185250
env:
186251
PR_NUMBER: ${{ github.event.pull_request.number }}
187252
LANDING_PAGE_PATH: ${{ steps.docs-build.outputs.landing-page-path || env.PATH_PREFIX }}

.github/workflows/preview-cleanup.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,3 @@ jobs:
5252
PR_NUMBER: ${{ github.event.pull_request.number }}
5353
run: |
5454
aws s3 rm "s3://elastic-docs-v3-website-preview/${GITHUB_REPOSITORY}/pull/${PR_NUMBER}" --recursive
55-
56-
- name: 'Update Reference Index'
57-
uses: elastic/docs-builder/actions/update-reference-index@main

.github/workflows/release-drafter.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ permissions:
1111

1212
jobs:
1313
update-release-draft:
14+
concurrency:
15+
group: release-drafter
1416
permissions:
1517
contents: write
1618
pull-requests: read

0 commit comments

Comments
 (0)