Skip to content

Commit 89d8676

Browse files
authored
Merge pull request #82 from DeployGate/jmatsu/fix/javadoc_hosting
Download and unarchive all javadocs which are missing at a run-time
2 parents b5ce875 + 8092988 commit 89d8676

File tree

1 file changed

+40
-31
lines changed

1 file changed

+40
-31
lines changed

.github/workflows/deploy-javadoc.yml

Lines changed: 40 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,32 @@ jobs:
1616
- uses: actions/checkout@v3
1717
with:
1818
ref: gh-pages
19-
- uses: actions/github-script@v6
20-
id: latest-version
19+
- uses: actions/github-script@v7
20+
id: versions
2121
with:
22-
result-encoding: string
22+
result-encoding: json
2323
script: |
24-
const { data: release } = await github.rest.repos.getLatestRelease({
24+
const fs = require('fs');
25+
26+
const opts = github.rest.repos.listReleases.endpoint.merge({
2527
owner: context.repo.owner,
26-
repo: context.repo.repo,
28+
repo: context.repo.repo
2729
});
30+
const releases = await github.paginate(opts);
2831
29-
return release.tag_name
30-
- id: has-new-release
31-
run: |
32-
if [[ -d "${{ steps.latest-version.outputs.result }}" ]]; then
33-
echo 'result=false' >> $GITHUB_OUTPUT
34-
else
35-
echo 'result=true' >> $GITHUB_OUTPUT
36-
fi
32+
const missings = [];
33+
34+
releases.forEach((release) => {
35+
if (!release.draft && !release.prerelease && release.tag_name) {
36+
if (!fs.existsSync(release.tag_name)) {
37+
missings.push(release.tag_name);
38+
}
39+
}
40+
});
41+
42+
return missings;
3743
outputs:
38-
has-new-release: ${{ steps.has-new-release.outputs.result }}
39-
latest-version: ${{ steps.latest-version.outputs.result }}
44+
versions: ${{ steps.versions.outputs.result }}
4045
deploy-new-javadoc:
4146
needs:
4247
- check-new-release
@@ -46,27 +51,31 @@ jobs:
4651
with:
4752
ref: gh-pages
4853
- id: download-javadoc
49-
if: ${{ needs.check-new-release.outputs.has-new-release == 'true' }}
54+
if: >
55+
needs.check-new-release.outputs.versions != '[]'
56+
env:
57+
MISSING_VERSIONS: ${{ join(fromJSON(needs.check-new-release.outputs.versions), ' ') }}
5058
run: |
51-
readonly version='${{ needs.check-new-release.outputs.latest-version }}'
52-
readonly url="https://repo1.maven.org/maven2/com/deploygate/sdk/${version}/sdk-${version}-javadoc.jar"
53-
readonly dist="$version"
54-
55-
mkdir -p "$dist"
56-
57-
if curl -sSfL -I --url "$url"; then
58-
curl -sSfL \
59-
-X GET \
60-
--url "$url" \
61-
-o javadoc.jar
62-
unzip javadoc.jar -d "$dist/"
59+
for version in $MISSING_VERSIONS; do
60+
url="https://repo1.maven.org/maven2/com/deploygate/sdk/${version}/sdk-${version}-javadoc.jar"
61+
dist="$version"
62+
63+
mkdir -p "$dist"
64+
65+
if curl -sSfL -I --url "$url"; then
66+
curl -sSfL \
67+
-X GET \
68+
--url "$url" \
69+
-o javadoc.jar
70+
unzip javadoc.jar -d "$dist/"
71+
72+
rm javadoc.jar
73+
fi
6374

6475
if [[ ! -f "$dist/index.html" ]]; then
6576
rm -fr "$dist"
6677
fi
67-
68-
rm javadoc.jar
69-
fi
78+
done
7079
- uses: actions/github-script@v6
7180
with:
7281
script: |

0 commit comments

Comments
 (0)