Skip to content

Commit 1039e2c

Browse files
committed
automated docs generation
1 parent 210d48b commit 1039e2c

3 files changed

Lines changed: 193 additions & 12 deletions

File tree

.circleci/config.yml

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ workflows:
99
only: /^v.*/
1010
branches:
1111
ignore: /.*/
12+
- publish-documentation:
13+
requires:
14+
- release
15+
filters:
16+
tags:
17+
only: /^v.*/
18+
branches:
19+
ignore: /.*/
1220
default:
1321
jobs:
1422
- build
@@ -69,7 +77,7 @@ jobs:
6977
build:
7078
working_directory: ~/code
7179
docker:
72-
- image: mbgl/android-ndk-r19:latest
80+
- image: mbgl/android-ndk-r21e:latest
7381
steps:
7482
- checkout
7583
- build-release
@@ -78,7 +86,7 @@ jobs:
7886
test:
7987
working_directory: ~/code
8088
docker:
81-
- image: mbgl/android-ndk-r19:latest
89+
- image: mbgl/android-ndk-r21e:latest
8290
steps:
8391
- checkout
8492
- restore_cache:
@@ -94,7 +102,7 @@ jobs:
94102
environment:
95103
- MBX_CI_DOMAIN: o619qyc20d.execute-api.us-east-1.amazonaws.com
96104
docker:
97-
- image: mbgl/android-ndk-r19:latest
105+
- image: mbgl/android-ndk-r21e:latest
98106
working_directory: ~/code
99107
steps:
100108
- checkout
@@ -108,7 +116,7 @@ jobs:
108116
environment:
109117
- MBX_CI_DOMAIN: o619qyc20d.execute-api.us-east-1.amazonaws.com
110118
docker:
111-
- image: mbgl/android-ndk-r19:latest
119+
- image: mbgl/android-ndk-r21e:latest
112120
working_directory: ~/code
113121
steps:
114122
- checkout
@@ -125,3 +133,19 @@ jobs:
125133
# name: Create pull request in api-downloads
126134
# command: |
127135
# make sdk-registry-publish
136+
publish-documentation:
137+
environment:
138+
- MBX_CI_DOMAIN: o619qyc20d.execute-api.us-east-1.amazonaws.com
139+
docker:
140+
- image: mbgl/android-ndk-r21e:latest
141+
working_directory: ~/code
142+
steps:
143+
- checkout
144+
- setup-aws-credentials
145+
- run:
146+
name: Publish API docs
147+
command: |
148+
GITHUB_WRITER_TOKEN=$(./mbx-ci github writer token)
149+
git remote set-url origin "https://x-access-token:$GITHUB_WRITER_TOKEN@github.com/mapbox/mapbox-java.git"
150+
git config --global user.email no-reply@mapbox.com && git config --global user.name mapbox-ci
151+
./scripts/publish_api_docs_android.sh -p $GITHUB_WRITER_TOKEN -t $CIRCLE_TAG

Makefile

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@ build-cli:
2121

2222
javadoc:
2323
mkdir documentation
24-
mkdir documentation/core/
25-
mkdir documentation/geojson/
26-
mkdir documentation/turf/
27-
mkdir documentation/services/
28-
./gradlew :services-core:javadoc; mv services-core/build/docs/javadoc/ ./documentation/core/javadoc/ ; \
29-
./gradlew :services-geojson:javadoc; mv services-geojson/build/docs/javadoc/ ./documentation/geojson/javadoc/ ; \
30-
./gradlew :services-turf:javadoc; mv services-turf/build/docs/javadoc/ ./documentation/turf/javadoc/ ; \
31-
./gradlew :services:javadoc; mv services/build/docs/javadoc/ ./documentation/services/javadoc/ ; \
24+
mkdir documentation/libjava-core/
25+
mkdir documentation/libjava-geojson/
26+
mkdir documentation/libjava-turf/
27+
mkdir documentation/libjava-services/
28+
./gradlew :services-core:javadoc; mv services-core/build/docs/javadoc/ ./documentation/libjava-core/javadoc/ ; \
29+
./gradlew :services-geojson:javadoc; mv services-geojson/build/docs/javadoc/ ./documentation/libjava-geojson/javadoc/ ; \
30+
./gradlew :services-turf:javadoc; mv services-turf/build/docs/javadoc/ ./documentation/libjava-turf/javadoc/ ; \
31+
./gradlew :services:javadoc; mv services/build/docs/javadoc/ ./documentation/libjava-services/javadoc/ ; \
3232

3333
sdk-registry-upload:
3434
./gradlew mapboxSDKRegistryUpload
Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
usage() {
5+
echo "Usage: " 1>&2;
6+
echo "$0 arguments [optional arguments]" 1>&2;
7+
echo " Arguments : " 1>&2;
8+
echo " -t <TAG> tag, e.g. v1.0.0" 1>&2;
9+
echo " -p <GITHUB APP TOKEN> access token for pull request creation" 1>&2;
10+
echo " Optional arguments : " 1>&2;
11+
echo " -a <GIT_REPOSITORY> path to the repository, by default uses current path" 1>&2;
12+
exit 1;
13+
}
14+
15+
readonly DOCS_BASE_BRANCH_NAME_PRODUCTION="publisher-production"
16+
readonly DOCS_BASE_BRANCH_NAME_STAGING="publisher-staging"
17+
PATH_TO_REPO=$(pwd)
18+
GITHUB_PR_ACCESS_TOKEN=""
19+
readonly GENERATED_DOCS_FOLDER=${PATH_TO_REPO}/documentation
20+
readonly DOCS_PREFIX="libjava"
21+
22+
while getopts "t:a:p:" opt; do
23+
case "${opt}" in
24+
t)
25+
TAG=${OPTARG}
26+
VERSION_NUMBER="${TAG//v}"
27+
BRANCH_NAME="docs-${TAG}"
28+
;;
29+
p)
30+
GITHUB_PR_ACCESS_TOKEN=${OPTARG}
31+
;;
32+
a)
33+
PATH_TO_REPO=${OPTARG}
34+
;;
35+
*)
36+
usage
37+
;;
38+
esac
39+
done
40+
41+
echo "Repository path=${PATH_TO_REPO}"
42+
43+
checkIfGithubTokensAreProvided() {
44+
if [ -z "$GITHUB_PR_ACCESS_TOKEN" ]; then
45+
usage
46+
fi
47+
}
48+
49+
checkIfTagExist() {
50+
pushd "${PATH_TO_REPO}"
51+
if [ "$(git tag --points-at HEAD)" = "$TAG" ]; then
52+
echo "tag ${TAG} exist"
53+
else
54+
echo "current commit doesn't point at the tag ${TAG}"
55+
usage
56+
fi
57+
echo "VERSION_NUMBER=${VERSION_NUMBER}"
58+
59+
popd > /dev/null
60+
}
61+
62+
generateDocs() {
63+
pushd "${PATH_TO_REPO}"
64+
echo "Start generating docs"
65+
66+
make javadoc
67+
68+
echo "Finish generating docs"
69+
popd > /dev/null
70+
}
71+
72+
checkoutToPublisherStaging() {
73+
pushd "${PATH_TO_REPO}"
74+
75+
echo "checkout to ${DOCS_BASE_BRANCH_NAME_STAGING}"
76+
git checkout "${DOCS_BASE_BRANCH_NAME_STAGING}"
77+
78+
popd > /dev/null
79+
}
80+
81+
checkoutToPublisherProduction() {
82+
pushd "${PATH_TO_REPO}"
83+
84+
echo "checkout to ${DOCS_BASE_BRANCH_NAME_PRODUCTION}"
85+
git checkout "${DOCS_BASE_BRANCH_NAME_PRODUCTION}"
86+
87+
popd > /dev/null
88+
}
89+
90+
copyDocumentsToDocsFolders() {
91+
for fullPath in `find $GENERATED_DOCS_FOLDER -type d -maxdepth 1 -mindepth 1 | grep $DOCS_PREFIX` ; do
92+
docsDirectory=`basename $fullPath`
93+
targetDirectory=$PATH_TO_REPO/$docsDirectory/$VERSION_NUMBER
94+
mkdir $targetDirectory
95+
cp -r $fullPath/javadoc/. $targetDirectory
96+
done
97+
}
98+
99+
pushDocsToStaging() {
100+
pushd "${PATH_TO_REPO}"
101+
102+
echo "push docs to staging"
103+
git add "./$DOCS_PREFIX*"
104+
git commit -m "Docs ${TAG}" -q
105+
git push origin HEAD --set-upstream -q
106+
107+
popd > /dev/null
108+
}
109+
110+
createBranchProduction() {
111+
pushd "${PATH_TO_REPO}"
112+
113+
echo "create a docs brach"
114+
git checkout -b ${BRANCH_NAME}
115+
git add "./$DOCS_PREFIX*"
116+
git commit -m "Docs ${TAG}" -q
117+
git push origin HEAD --set-upstream -q
118+
popd > /dev/null
119+
}
120+
121+
createPullRequest() {
122+
pushd "${PATH_TO_REPO}"
123+
124+
echo "create pull request"
125+
126+
GITHUB_TOKEN=$GITHUB_PR_ACCESS_TOKEN gh pr create \
127+
--title "Docs ${TAG}" \
128+
--body "**Docs ${TAG}**
129+
<br/>**Staging**:
130+
<br/> mapbox-java-core:
131+
<a href='https://github.com/mapbox/mapbox-java/tree/publisher-staging/libjava-core/${VERSION_NUMBER}'>staging github</a>
132+
<br/>mapbox-java-geojson:
133+
<a href='https://github.com/mapbox/mapbox-java/tree/publisher-staging/libjava-geojson/${VERSION_NUMBER}'>staging github</a>
134+
<br/>mapbox-java-turf:
135+
<a href='https://github.com/mapbox/mapbox-java/tree/publisher-staging/libjava-turf/${VERSION_NUMBER}'>staging github</a>
136+
<br/>mapbox-java-services:
137+
<a href='https://github.com/mapbox/mapbox-java/tree/publisher-staging/libjava-core/${VERSION_NUMBER}'>staging github</a>
138+
<br/>**cc** @mapbox/navigation-android" \
139+
--base ${DOCS_BASE_BRANCH_NAME_PRODUCTION} \
140+
--head ${BRANCH_NAME} \
141+
--label "Documentation"
142+
143+
popd > /dev/null
144+
}
145+
146+
checkIfGithubTokensAreProvided
147+
checkIfTagExist
148+
generateDocs
149+
# staging
150+
checkoutToPublisherStaging
151+
copyDocumentsToDocsFolders
152+
pushDocsToStaging
153+
# production
154+
checkoutToPublisherProduction
155+
copyDocumentsToDocsFolders
156+
createBranchProduction
157+
createPullRequest

0 commit comments

Comments
 (0)