mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-20 00:51:41 +00:00
69 lines
1.9 KiB
YAML
69 lines
1.9 KiB
YAML
name: Build
|
|
|
|
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/**'
|
|
|
|
jobs:
|
|
build-photonlib-vendorjson:
|
|
name: "Build Vendor JSON"
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Install Java 17
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
java-version: 17
|
|
distribution: temurin
|
|
|
|
# grab all tags
|
|
- run: git fetch --tags --force
|
|
|
|
# Generate the JSON and give it the ""standard""" name maven gives it
|
|
- run: |
|
|
chmod +x gradlew
|
|
./gradlew photon-lib:generateVendorJson
|
|
export VERSION=$(git describe --tags --match=v*)
|
|
mv photon-lib/build/generated/vendordeps/photonlib.json photon-lib/build/generated/vendordeps/photonlib-$(git describe --tags --match=v*).json
|
|
|
|
# Upload it here so it shows up in releases
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: photonlib-vendor-json
|
|
path: photon-lib/build/generated/vendordeps/photonlib-*.json
|
|
|
|
dispatch:
|
|
name: dispatch
|
|
needs: [build-photonlib-vendorjson]
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
# Download our vendor JSON
|
|
- uses: actions/download-artifact@v4
|
|
with:
|
|
pattern: photonlib-vendor-json
|
|
- uses: peter-evans/repository-dispatch@v3
|
|
if: |
|
|
github.repository == 'mcm001/photonvision' &&
|
|
startsWith(github.ref, 'refs/tags/v')
|
|
with:
|
|
token: ${{ secrets.VENDOR_JSON_REPO_PUSH_TOKEN }}
|
|
repository: PhotonVision/vendor-json-repo
|
|
event-type: tag
|
|
client-payload: '{"run_id": "${{ github.run_id }}", "package_version": "${{ github.ref_name }}"}'
|