name: documentation preview on: pull_request: paths: - 'doc/**' - 'scripts/build-docs.sh' - '.github/workflows/docs-preview.yaml' jobs: scripts: name: build runs-on: ubuntu-latest environment: name: 'staging.chatmail.at/doc/relay/' url: https://staging.chatmail.at/doc/relay/${{ steps.prepare.outputs.prid }} steps: - uses: actions/checkout@v4 - name: initenv run: scripts/initenv.sh - name: append venv/bin to PATH run: echo `pwd`/venv/bin >>$GITHUB_PATH - name: build documentation working-directory: doc run: sphinx-build source build - name: build documentation second time (for TOC) working-directory: doc run: sphinx-build source build - name: Get Pullrequest ID id: prepare run: | export PULLREQUEST_ID=$(echo "${{ github.ref }}" | cut -d "/" -f3) echo "prid=$PULLREQUEST_ID" >> $GITHUB_OUTPUT if [ $(expr length "${{ secrets.USERNAME }}") -gt "1" ]; then echo "uploadtoserver=true" >> $GITHUB_OUTPUT; fi - run: | echo "baseurl: /${{ steps.prepare.outputs.prid }}" >> _config.yml - name: Upload preview run: | mkdir -p "$HOME/.ssh" echo "${{ secrets.CHATMAIL_STAGING_SSHKEY }}" > "$HOME/.ssh/key" chmod 600 "$HOME/.ssh/key" rsync -rILvh -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no" $GITHUB_WORKSPACE/doc/build/ "${{ secrets.USERNAME }}@chatmail.at:/var/www/html/staging.chatmail.at/doc/relay/${{ steps.prepare.outputs.prid }}/" - name: check links working-directory: doc run: sphinx-build --builder linkcheck source build