-
Notifications
You must be signed in to change notification settings - Fork 12
185 lines (156 loc) · 5.3 KB
/
deploy-website.yml
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
name: Deploy documentation and API reference
on:
# If specified, the workflow will be triggered automatically once you push to the `main` branch.
# Replace `main` with your branch’s name
push:
# branches: [ "main" ]
# Specify to run a workflow manually from the Actions tab on GitHub
workflow_dispatch:
# Gives the workflow permissions to clone the repo and create a page deployment
permissions:
id-token: write
pages: write
env:
# Name of module and id separated by a slash
INSTANCE: documentation/akkurate
# Replace HI with the ID of the instance in capital letters
DOC_ARTIFACT: webHelpAKKURATE2-all.zip
# Writerside docker image version
DOCKER_VERSION: 2.1.1479-p3869
# Add the variable below to upload Algolia indexes
# Replace HI with the ID of the instance in capital letters
ALGOLIA_ARTIFACT: algolia-indexes-AKKURATE.zip
ALGOLIA_APP_NAME: L3ZXCPZ1DE
ALGOLIA_INDEX_NAME: akkurate
ALGOLIA_KEY: ${{ secrets.ALGOLIA_KEY }}
CONFIG_JSON_PRODUCT: AKKURATE
CONFIG_JSON_VERSION: 0.3.0
jobs:
build-documentation:
name: Build documentation
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Build documentation
uses: JetBrains/writerside-github-action@v4
with:
instance: ${{ env.INSTANCE }}
artifact: ${{ env.DOC_ARTIFACT }}
docker-version: ${{ env.DOCKER_VERSION }}
- name: Upload documentation
uses: actions/upload-artifact@v3
with:
name: docs
path: |
./artifacts/${{ env.DOC_ARTIFACT }}
./artifacts/report.json
retention-days: 7
- name: Upload social image
uses: actions/upload-artifact@v3
with:
name: social-image
path: ./documentation/images/social.png
retention-days: 7
- name: Upload Algolia indexes
uses: actions/upload-artifact@v3
with:
name: algolia-indexes
path: artifacts/${{ env.ALGOLIA_ARTIFACT }}
retention-days: 7
build-api-reference:
name: Build API reference
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: 17
distribution: zulu
- name: Validate Gradle wrapper
uses: gradle/wrapper-validation-action@v1
- name: Setup Gradle
uses: gradle/[email protected]
- name: Build the API
run: ./gradlew dokkaHtmlMultiModule
- name: Upload API reference
uses: actions/upload-artifact@v3
with:
name: api
path: ./build/dokka/htmlMultiModule/
retention-days: 7
# Add the job below and artifacts/report.json on Upload documentation step above if you want to fail the build when documentation contains errors
test-documentation:
name: Test documentation
# Requires build job results
needs: build-documentation
runs-on: ubuntu-latest
steps:
- name: Download documentation
uses: actions/download-artifact@v1
with:
name: docs
path: artifacts
- name: Test documentation
uses: JetBrains/writerside-checker-action@v1
with:
instance: ${{ env.INSTANCE }}
publish-documentation-indexes:
name: Publish documentation indexes to Algolia
needs: build-documentation
runs-on: ubuntu-latest
container:
image: registry.jetbrains.team/p/writerside/builder/algolia-publisher:2.0.32-2
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: algolia-indexes
- uses: montudor/action-zip@v1
with:
args: unzip -qq ${{ env.ALGOLIA_ARTIFACT }} -d algolia-indexes
- run: |
env "algolia-key=${{env.ALGOLIA_KEY}}" java -jar /opt/builder/help-publication-agent.jar \
update-index \
--application-name ${{env.ALGOLIA_APP_NAME}} \
--index-name ${{env.ALGOLIA_INDEX_NAME}} \
--product ${{env.CONFIG_JSON_PRODUCT}} \
--version ${{env.CONFIG_JSON_VERSION}} \
--index-directory algolia-indexes/ \
2>&1 | tee algolia-update-index-log.txt
deploy:
name: Deploy everything
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
# Requires the build job results
needs: [ test-documentation, build-api-reference ]
runs-on: ubuntu-latest
steps:
- name: Download documentation
uses: actions/download-artifact@v3
with:
name: docs
- name: Unzip documentation
run: mkdir website && unzip -qq ${{ env.DOC_ARTIFACT }} -d website/docs
- name: Download API reference
uses: actions/download-artifact@v3
with:
name: api
path: ./website/api/
- name: Download social image
uses: actions/download-artifact@v3
with:
name: social-image
path: ./website/
- name: Setup Pages
uses: actions/configure-pages@v2
- name: Upload Pages contents
uses: actions/upload-pages-artifact@v1
with:
path: website
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1