Skip to content

Commit 05b8278

Browse files
committed
feat: Add new workflow for detecting changes in dot org
1 parent 43fd0cb commit 05b8278

File tree

1 file changed

+97
-0
lines changed

1 file changed

+97
-0
lines changed

.github/workflows/dot-org-content.yml

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
name: Detect changes in documentation within nginx/nginx.org
2+
3+
on:
4+
pull_request:
5+
# workflow_dispatch:
6+
# schedule:
7+
# - cron: "0 */23 * * *"
8+
permissions:
9+
pull-requests: write
10+
11+
jobs:
12+
detect-changes:
13+
name: Detect changes in 'en' docs of nginx/nginx.org
14+
runs-on: ubuntu-latest
15+
outputs:
16+
IS_CHANGES_DETECTED: ${{ steps.check_changes.outputs.changed }}
17+
steps:
18+
- name: Clone the nginx/nginx-org repository
19+
run: |
20+
git clone --depth=2 https://github.com/nginx/nginx.org.git dot-org-repo
21+
- name: Change for changes in xml/en folder
22+
id: check_changes
23+
run: |
24+
cd dot-org-repo
25+
commit1=$(git rev-parse HEAD)
26+
commit2=$(git rev-parse HEAD^)
27+
28+
if git diff --name-only $commit2 $commit1 | grep '^xml/en/'; then
29+
echo "Changes detected in /en"
30+
echo "changed=true" >> $GITHUB_OUTPUT
31+
else
32+
echo "No changes in /en"
33+
echo "changed=false" >> $GITHUB_OUTPUT
34+
fi
35+
36+
- name: Execute make target 'make hugo-md' to generate markdown
37+
if: steps.check_changes.outputs.changed == 'true'
38+
run: |
39+
cd dot-org-repo
40+
make module-markdown
41+
42+
move-generated-files:
43+
name: Move generated markdown files to '/content/nginx' directory
44+
if: needs.detect-changes.outputs.IS_CHANGES_DETECTED
45+
needs: detect-changes
46+
runs-on: ubuntu-latest
47+
steps:
48+
- name: Move the generated folder
49+
run: |
50+
mv dot-org-repo/libxslt-md/ ./content/nginx/
51+
52+
close-stale-PRs:
53+
name: Close any related stale PRs
54+
needs: move-generated-files
55+
runs-on: ubuntu-latest
56+
steps:
57+
- name: Check for any stale PRs
58+
id: check-stale-pr
59+
run: |
60+
"PLACEHOLDER"
61+
62+
- name: Close relevant PR if any exists
63+
if: steps.check-stale-pr.outputs.IS_STALE_FOUND == 'true'
64+
run: |
65+
"PLACEHOLDER"
66+
67+
68+
create-PR:
69+
name: Create PR in documentation repository
70+
if: needs.detect-changes.outputs.IS_CHANGES_DETECTED
71+
needs: close-stale-PRs
72+
runs-on: ubuntu-latest
73+
steps:
74+
- name: Generate the PR
75+
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
76+
with:
77+
script: |
78+
const { repo, owner } = context.repo;
79+
80+
const result = await github.rest.pulls.create({
81+
title: 'NGINX Plus - Module Ref: Update content for content/nginx due to detected changes',
82+
owner,
83+
repo,
84+
head: '${{ github.ref_name }}',
85+
base: 'develop',
86+
body: [
87+
'### Proposed Changes',
88+
'Updated NGINX Plus docs',
89+
].join('\n')
90+
});
91+
92+
github.rest.issues.addLabels({
93+
owner,
94+
repo,
95+
issue_number: result.data.number,
96+
labels: ['product/nginx-plus', 'dependencies', 'module-reference']
97+
});

0 commit comments

Comments
 (0)