name: Documentation on: [push, workflow_dispatch] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: BASE_PATH: allwpilib/docs jobs: publish: name: "Documentation - Publish" runs-on: ubuntu-24.04 if: github.repository == 'wpilibsuite/allwpilib' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) concurrency: ci-docs-publish steps: - uses: actions/checkout@v4 with: fetch-depth: 0 persist-credentials: false - uses: gradle/actions/wrapper-validation@v4 - uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: 21 - name: Set environment variables (Development) run: | echo "BRANCH=development" >> $GITHUB_ENV if: github.ref == 'refs/heads/main' - name: Set environment variables (Tag) run: | echo "EXTRA_GRADLE_ARGS=-PreleaseMode" >> $GITHUB_ENV echo "BRANCH=beta" >> $GITHUB_ENV if: startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '2027') - name: Set environment variables (Release) run: | echo "EXTRA_GRADLE_ARGS=-PreleaseMode" >> $GITHUB_ENV echo "BRANCH=release" >> $GITHUB_ENV if: startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, 'alpha') && !contains(github.ref, 'beta') && !contains(github.ref, '2027') - name: Set environment variables (2027) run: | echo "EXTRA_GRADLE_ARGS=-PreleaseMode" >> $GITHUB_ENV echo "BRANCH=2027" >> $GITHUB_ENV if: startsWith(github.ref, 'refs/tags/v') && contains(github.ref, '2027') - name: Build with Gradle run: ./gradlew docs:generateJavaDocs docs:doxygen -PbuildServer ${{ env.EXTRA_GRADLE_ARGS }} - name: Install SSH Client 🔑 uses: webfactory/ssh-agent@v0.9.0 with: ssh-private-key: ${{ secrets.GH_DEPLOY_KEY }} - name: Deploy 🚀 uses: JamesIves/github-pages-deploy-action@v4.6.1 with: ssh-key: true repository-name: wpilibsuite/wpilibsuite.github.io branch: allwpilib-${{ env.BRANCH }} clean: true single-commit: true folder: docs/build/docs - name: Trigger Workflow uses: actions/github-script@v7 with: github-token: ${{ secrets.DISPATCH_PAT_TOKEN }} script: | github.rest.actions.createWorkflowDispatch({ owner: context.repo.owner, repo: 'wpilibsuite.github.io', workflow_id: 'static.yml', ref: 'main', })