name: Photon Code Documentation on: # Run on pushes to master and pushed tags, and on pull requests against master, but ignore the docs folder push: branches: [ master ] tags: - 'v*' paths: - '**' - '!docs/**' - '.github/**' pull_request: branches: [ master ] paths: - '**' - '!docs/**' - '.github/**' merge_group: # 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@v4 with: java-version: 17 distribution: temurin - name: Build javadocs/doxygen run: | chmod +x gradlew ./gradlew photon-docs:generateJavaDocs photon-docs:doxygen - uses: actions/upload-artifact@v4 with: name: built-docs path: photon-docs/build/docs release: needs: [build-client, run_docs] runs-on: ubuntu-22.04 steps: # Download literally every single artifact. - uses: actions/download-artifact@v4 - run: find . - name: copy file via ssh password if: github.ref == 'refs/heads/master' uses: appleboy/scp-action@v0.1.7 with: host: ${{ secrets.WEBMASTER_SSH_HOST }} username: ${{ secrets.WEBMASTER_SSH_USERNAME }} password: ${{ secrets.WEBMASTER_SSH_KEY }} port: ${{ secrets.WEBMASTER_SSH_PORT }} source: "*" target: /var/www/html/photonvision-docs/