mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-19 00:41:41 +00:00
This PR updates everything for 2027. This includes removing GradleRIO, simplifying our wpilib version defintion, updating APIs, updating to Java 21, and more. Note that photonlibpy is failing because robotpy has not been fully updated yet. Examples are omitted because they need to be updated for our new PhotonPoseEstimator API and still need some changes from WPILIB. photonlib windows build is failing because we're waiting for some upstream changes. Finally, images are failing since they don't have Java 21 yet.
120 lines
3.4 KiB
YAML
120 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@v6
|
|
- uses: gradle/actions/wrapper-validation@v5
|
|
build_demo:
|
|
name: Build PhotonClient Demo
|
|
defaults:
|
|
run:
|
|
working-directory: photon-client
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v5
|
|
with:
|
|
version: 10
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v6
|
|
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@v7
|
|
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@v6
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Fetch tags
|
|
run: git fetch --tags --force
|
|
- uses: actions/setup-java@v5
|
|
with:
|
|
java-version: 21
|
|
distribution: temurin
|
|
- name: Build javadocs/doxygen
|
|
run: |
|
|
chmod +x gradlew
|
|
./gradlew photon-docs:generateJavaDocs photon-docs:doxygen
|
|
- uses: actions/upload-artifact@v7
|
|
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@v8
|
|
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@v8
|
|
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
|