name: Build documentation run-name: ${{ gitea.actor }} is building the Wiki documentation on: push: branches: - develop - master paths: - Wiki/** - Wiki.Dockerfile env: # Name of module and id separated by a slash INSTANCE: Wiki/wiki # Replace HI with the ID of the instance in capital letters ARTIFACT: webHelpWIKI2-all.zip # Writerside docker image version DOCKER_VERSION: 232.10165.1 ALGOLIA_ARTIFACT: algolia-indexes-wiki.zip jobs: preprocess: runs-on: ubuntu-latest outputs: sanitized_branch_name: ${{ steps.sanitize.outputs.sanitized_branch_name }} steps: - name: Sanitize branch name id: sanitize run: echo "::set-output name=sanitized_branch_name::$(echo ${{ github.ref_name }} | sed 's/\//-/g')" docs: runs-on: ubuntu-latest container: registry.jetbrains.team/p/writerside/builder/writerside-builder:${{env.DOCKER_VERSION}} steps: - name: Install basic dependencies run: | wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash echo "::add-path::$HOME/.nvm" export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" nvm install 18 nvm use 18 echo "::add-path::$(dirname $(which npm))" nvm --version - name: Check Node.js version run: | node -v npm -v - name: Checkout repository uses: https://github.com/actions/checkout@v3 - name: Build docs run: | set -e export DISPLAY=:99 Xvfb :99 & /opt/builder/bin/idea.sh helpbuilderinspect -source-dir . -product ${{env.INSTANCE}} -output-dir artifacts/ || true echo "Test existing of ${{ env.ARTIFACT }} artifact" test -e artifacts/${{ env.ARTIFACT }} - name: rename artifact run: | mv artifacts/${{ env.ARTIFACT }} artifacts/wiki.zip - name: Upload documentation uses: actions/upload-artifact@v3 with: name: wiki.zip path: artifacts/wiki.zip retention-days: 14 - name: Upload algolia-indexes uses: actions/upload-artifact@v4 with: name: algolia-indexes.zip path: artifacts/${{ env.ALGOLIA_ARTIFACT }} retention-days: 14 build-docs-container: runs-on: ubuntu-latest container: catthehacker/ubuntu:act-latest@sha256:5f2ff408985b10de9da4a8ea735b7f07d4f98c61608180ebb8964deb37f7580a needs: [docs, preprocess] steps: - name: Checkout repository uses: https://github.com/actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Docker Hub uses: docker/login-action@v3 with: registry: ${{ github.server_url }} username: ${{ github.actor }} password: ${{ secrets.REGISTRY_TOKEN }} - name: Retrieve docs artifact uses: actions/download-artifact@v4 with: name: wiki.zip path: ${{ github.workspace }} - name: Unzip wiki.zip into .public run: | mkdir .public unzip -jo -qq ./wiki.zip/wiki.zip -d .public - name: Build and push uses: docker/build-push-action@v5 with: context: . file: Wiki.Dockerfile push: true tags: forge.rainote.dev/${{ github.repository }}:${{ needs.preprocess.outputs.sanitized_branch_name }}-wiki platforms: linux/amd64,linux/arm64 - name: Build and push to latest if: github.ref_name == 'master' uses: docker/build-push-action@v5 with: context: . file: Wiki.Dockerfile push: true tags: forge.rainote.dev/${{ github.repository }}:latest-wiki platforms: linux/amd64, linux/arm64 deploy-wiki: runs-on: ubuntu-latest container: catthehacker/ubuntu:act-latest@sha256:5f2ff408985b10de9da4a8ea735b7f07d4f98c61608180ebb8964deb37f7580a needs: [build-docs-container, docs, preprocess] steps: - name: Deploy Image to CapRrover run: | docker run caprover/cli-caprover:2.2.3 caprover deploy --caproverUrl ${{ secrets.CAPROVER_SERVER }} --appToken ${{ secrets.WIKI_APP_TOKEN }} --imageName forge.rainote.dev/${{ github.repository }}:${{ needs.preprocess.outputs.sanitized_branch_name }}-wiki -a ${{ secrets.WIKI_APP_NAME }}