name: Documentation on: push: # For now, run on all commits to master branches: [ master ] # and also all tags starting with v tags: - 'v*' # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build-client: name: "PhotonClient Build" defaults: run: working-directory: photon-client runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 18 - name: Install Dependencies run: npm ci - name: Build Production Client run: npm run build-demo - uses: actions/upload-artifact@v4 with: name: built-client path: photon-client/dist/ run_docs: runs-on: "ubuntu-22.04" steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 - name: Fetch tags run: git fetch --tags --force - name: Install Java 17 uses: actions/setup-java@v3 with: java-version: 17 distribution: temurin - name: Build javadocs/doxygen run: | chmod +x gradlew ./gradlew docs:generateJavaDocs docs:doxygen - uses: actions/upload-artifact@v4 with: name: built-docs path: docs/build/docs release: needs: [build-client, run_docs] environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-22.04 steps: # Download literally every single artifact. - uses: actions/download-artifact@v4 - run: find . - name: Setup Pages uses: actions/configure-pages@v4 - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: # Upload entire repository path: '.' - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4