-
Notifications
You must be signed in to change notification settings - Fork 0
103 lines (93 loc) · 3.13 KB
/
deploy.yml
File metadata and controls
103 lines (93 loc) · 3.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
name: Publish all books to Pages
on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
publish_index:
uses: ./.github/workflows/publish_book.yml
with:
is_index: true
setup_array:
runs-on: ubuntu-slim
outputs:
sites: ${{ steps.set_sites.outputs.sites }}
steps:
- name: Writing the book url names into a sharable matrix input
id: set_sites
run: |
{
echo 'sites<<EOF'
cat << 'JSON'
[
"user-guide",
"tutorials",
"quick-help",
"origin-help",
"x-function",
"originc",
"labtalk",
"python",
"externalpython",
"com",
"labview",
"app",
"appdev",
"codebuild",
"orglab",
"license"
]
JSON
echo 'EOF'
} >> "$GITHUB_OUTPUT"
start_array:
needs: [setup_array, publish_index]
runs-on: ubuntu-slim
environment: deploy
env:
GH_TOKEN: ${{ secrets.PAT_DOC_WORKFLOW }}
strategy:
matrix:
site: ${{ fromJson(needs.setup_array.outputs.sites) }}
steps:
- name: Dispatch deploy.yml and capture the run url
id: dispatch
run: echo "deploy_run_url=$(gh workflow run deploy.yml --repo originlab/${{ matrix.site }})" >> "$GITHUB_ENV"
- name: Save the run id
run: echo "$deploy_run_url" | grep -oE "[0-9]+$" >> run_id.txt
- uses: actions/upload-artifact@v7
with:
name: run_id-${{ matrix.site }}
path: run_id.txt
retention-days: 1
get_result:
needs: [setup_array, start_array]
runs-on: ubuntu-slim
environment: deploy_watch
env:
GH_TOKEN: ${{ secrets.PAT_DOC_WORKFLOW }}
strategy:
matrix:
site: ${{ fromJson(needs.setup_array.outputs.sites) }}
steps:
- uses: actions/download-artifact@v8
with:
name: run_id-${{ matrix.site }}
- name: Set $deploy_run_id
run: echo "deploy_run_id=$(cat run_id.txt)" >> "$GITHUB_ENV"
- name: Watch the deployment
run: gh run watch $deploy_run_id -R originlab/${{ matrix.site }} -i 10 --exit-status
- name: Set $build_job_id
run: echo "build_job_id=$(gh run view $deploy_run_id -R originlab/${{ matrix.site }} | grep 'publish_book / convert' | grep -oP '\(ID \K\d+')" >> "$GITHUB_ENV"
- name: Print converter output
run: >
gh run view $deploy_run_id -j $build_job_id -R originlab/${{ matrix.site }} --log
| awk '/generator\.dll"/ {f=1} /upload-pages-artifact/ {f=0} f'
| cut -f3- | cut -d' ' -f2-
- name: Print the book artifact summary
run: >
gh run view $deploy_run_id -j $build_job_id -R originlab/${{ matrix.site }} --log
| awk '/Run actions\/upload-artifact|Finished uploading/{f=1} /Beginning upload|Artifact download/{f=0} f'
| cut -f3- | cut -d' ' -f2-