name: CI on: [push, pull_request] jobs: build-docker: strategy: fail-fast: false matrix: include: - container: wpilib/roborio-cross-ubuntu:2024-22.04 artifact-name: Athena build-options: "-Ponlylinuxathena" # - container: wpilib/raspbian-cross-ubuntu:bullseye-22.04 # artifact-name: Arm32 # build-options: "-Ponlylinuxarm32" # - container: wpilib/aarch64-cross-ubuntu:bullseye-22.04 # artifact-name: Arm64 # build-options: "-Ponlylinuxarm64" - container: wpilib/ubuntu-base:22.04 artifact-name: Linux build-options: "" name: "Build - ${{ matrix.artifact-name }}" runs-on: ubuntu-latest container: ${{ matrix.container }} steps: - uses: actions/checkout@v4 with: submodules: true fetch-depth: 0 - name: Fetch all history and metadata run: | git config --global --add safe.directory /__w/vendor-template/vendor-template - name: Build with Gradle run: ./gradlew build --max-workers 1 ${{ matrix.build-options }} - uses: actions/upload-artifact@v3 with: name: ${{ matrix.artifact-name }} path: build/allOutputs build-host: env: MACOSX_DEPLOYMENT_TARGET: 11 strategy: fail-fast: false matrix: include: - os: windows-2022 artifact-name: Win64 architecture: x64 - os: macos-12 artifact-name: macOS architecture: x64 name: "Build - ${{ matrix.artifact-name }}" runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 with: submodules: true - name: Fetch all history and metadata run: git fetch --prune --unshallow - uses: actions/setup-java@v3 with: distribution: 'zulu' java-version: 17 architecture: ${{ matrix.architecture }} - name: Build with Gradle run: ./gradlew build -Pbuildalldesktop - uses: actions/upload-artifact@v3 with: name: ${{ matrix.artifact-name }} path: build/allOutputs combine: name: Combine needs: [build-docker, build-host] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: repository: wpilibsuite/build-tools - uses: actions/download-artifact@v3 with: path: combiner/products/build/allOutputs - name: Flatten Artifacts run: rsync -a --delete combiner/products/build/allOutputs/*/* combiner/products/build/allOutputs/ - uses: actions/setup-java@v3 with: distribution: 'zulu' java-version: 17 - name: Combine # if: | # !startsWith(github.ref, 'refs/tags/v') run: ./gradlew publish -Pthirdparty working-directory: combiner # - name: Combine (Release) # if: | # github.repository_owner == 'wpilibsuite' && # startsWith(github.ref, 'refs/tags/v') # run: | # ./gradlew publish -Pthirdparty # working-directory: combiner # env: # RUN_AZURE_ARTIFACTORY_RELEASE: 'TRUE' # ARTIFACTORY_PUBLISH_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} # ARTIFACTORY_PUBLISH_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} - uses: actions/upload-artifact@v3 with: name: Maven path: ~/releases