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 }}"}'