mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-19 00:41:41 +00:00
Bumps various versions in actions, as well as ensuring consistency across workflows wrt versions used. One of the key reasons is ensuring that we're up to date and consistent (previously having used 22.04 and 24.04), also since 3.11 is EOL.
121 lines
3.4 KiB
YAML
121 lines
3.4 KiB
YAML
name: Photon API Documentation
|
|
|
|
on:
|
|
# Run on pushes to main and pushed tags, and on pull requests against main, but ignore the docs folder
|
|
push:
|
|
pull_request:
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
permissions:
|
|
contents: read
|
|
pages: write
|
|
id-token: write
|
|
|
|
jobs:
|
|
validation:
|
|
name: "Validation"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: gradle/actions/wrapper-validation@v4
|
|
build_demo:
|
|
name: Build PhotonClient Demo
|
|
defaults:
|
|
run:
|
|
working-directory: photon-client
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: 10
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22
|
|
cache: pnpm
|
|
cache-dependency-path: photon-client/pnpm-lock.yaml
|
|
- name: Install Dependencies
|
|
run: pnpm i --frozen-lockfile
|
|
- name: Build Production Client
|
|
run: pnpm run build-demo
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: built-demo
|
|
path: photon-client/dist/
|
|
|
|
run_java_cpp_docs:
|
|
name: Build Java and C++ API Docs
|
|
needs: [validation]
|
|
runs-on: "ubuntu-24.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: docs-java-cpp
|
|
path: photon-docs/build/docs
|
|
|
|
publish_api_docs:
|
|
name: Publish API Docs
|
|
needs: [run_java_cpp_docs]
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
# Download docs artifact
|
|
- uses: actions/download-artifact@v7
|
|
with:
|
|
pattern: docs-*
|
|
- run: find .
|
|
- name: Publish Docs To Development
|
|
if: github.ref == 'refs/heads/main'
|
|
uses: up9cloud/action-rsync@v1.4
|
|
env:
|
|
HOST: ${{ secrets.WEBMASTER_SSH_HOST }}
|
|
USER: ${{ secrets.WEBMASTER_SSH_USERNAME }}
|
|
KEY: ${{secrets.WEBMASTER_SSH_KEY}}
|
|
TARGET: /var/www/html/photonvision-docs/development/
|
|
- name: Publish Docs To Release
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
uses: up9cloud/action-rsync@v1.4
|
|
env:
|
|
HOST: ${{ secrets.WEBMASTER_SSH_HOST }}
|
|
USER: ${{ secrets.WEBMASTER_SSH_USERNAME }}
|
|
KEY: ${{ secrets.WEBMASTER_SSH_KEY }}
|
|
TARGET: /var/www/html/photonvision-docs/release/
|
|
|
|
publish_demo:
|
|
name: Publish PhotonClient Demo
|
|
needs: [build_demo]
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/download-artifact@v7
|
|
with:
|
|
name: built-demo
|
|
- run: find .
|
|
- name: Publish demo
|
|
if: github.ref == 'refs/heads/main'
|
|
uses: up9cloud/action-rsync@v1.4
|
|
env:
|
|
HOST: ${{ secrets.WEBMASTER_SSH_HOST }}
|
|
USER: ${{ secrets.WEBMASTER_SSH_USERNAME }}
|
|
KEY: ${{ secrets.WEBMASTER_SSH_KEY }}
|
|
TARGET: /var/www/html/photonvision-demo
|