release 0.11.0 #192
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy documentation and API reference | |
on: [ push, pull_request ] | |
# 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: "243.21565" | |
# 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.11.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: Fix permissions on `artifacts` directory | |
run: sudo chown runner:docker ./artifacts | |
- name: Unzip documentation | |
run: unzip -qq ./artifacts/${{ env.DOC_ARTIFACT }} -d ./artifacts/docs | |
- name: Replace Open Graph image for specific pages | |
run: | | |
sed -i 's/akkurate\.dev\/social\.png/akkurate.dev\/social-arrow.png/g' ./artifacts/docs/arrow-integration.html; | |
sed -i 's/akkurate\.dev\/social\.png/akkurate.dev\/social-ktor-server.png/g' ./artifacts/docs/ktor-server-integration.html; | |
sed -i 's/akkurate\.dev\/social\.png/akkurate.dev\/social-ktor-client.png/g' ./artifacts/docs/ktor-client-integration.html; | |
- name: Upload documentation | |
uses: actions/upload-artifact@v4 | |
with: | |
name: docs | |
path: | | |
./artifacts/docs | |
./artifacts/report.json | |
retention-days: 7 | |
- name: Upload social images | |
uses: actions/upload-artifact@v4 | |
with: | |
name: social-images | |
path: | | |
./documentation/images/social.png | |
./documentation/images/social-arrow.png | |
./documentation/images/social-ktor-server.png | |
./documentation/images/social-ktor-client.png | |
retention-days: 7 | |
- name: Upload Algolia indexes | |
uses: actions/upload-artifact@v4 | |
with: | |
name: algolia-indexes | |
path: artifacts/${{ env.ALGOLIA_ARTIFACT }} | |
retention-days: 7 | |
build-api-reference: | |
name: Build API reference | |
if: ${{ github.ref == 'refs/heads/main' }} | |
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@v4 | |
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@v4 | |
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 | |
if: ${{ github.ref == 'refs/heads/main' }} | |
runs-on: ubuntu-latest | |
container: | |
image: registry.jetbrains.team/p/writerside/builder/algolia-publisher:2.0.32-3 | |
steps: | |
- uses: actions/download-artifact@v4 | |
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 }} | |
needs: [ test-documentation, build-api-reference ] | |
if: ${{ github.ref == 'refs/heads/main' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download documentation | |
uses: actions/download-artifact@v4 | |
with: | |
name: docs | |
path: ./website/ | |
- name: Download API reference | |
uses: actions/download-artifact@v4 | |
with: | |
name: api | |
path: ./website/api/ | |
- name: Download social images | |
uses: actions/download-artifact@v4 | |
with: | |
name: social-images | |
path: ./website/ | |
- name: Setup Pages | |
uses: actions/configure-pages@v2 | |
- name: Upload Pages contents | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: website | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |