make simd sizes constexpr #1279
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Gradle | |
| on: [pull_request, push] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| validation: | |
| name: "Validation" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: gradle/actions/wrapper-validation@v4 | |
| build-docker: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - container: wpilib/systemcore-cross-ubuntu:2027-24.04 | |
| artifact-name: SystemCore | |
| build-options: "-Ponlylinuxsystemcore" | |
| - container: wpilib/raspbian-cross-ubuntu:2027-bookworm-24.04 | |
| artifact-name: Arm32 | |
| build-options: "-Ponlylinuxarm32" | |
| - container: wpilib/aarch64-cross-ubuntu:2027-bookworm-24.04 | |
| artifact-name: Arm64 | |
| build-options: "-Ponlylinuxarm64" | |
| - container: wpilib/systemcore-cross-ubuntu:2027-24.04 | |
| artifact-name: Linux | |
| build-options: "-Ponlylinuxx86-64" | |
| name: "Build - ${{ matrix.artifact-name }}" | |
| runs-on: ubuntu-24.04 | |
| needs: [validation] | |
| steps: | |
| - name: Free Disk Space | |
| uses: jlumbroso/free-disk-space@main | |
| with: | |
| tool-cache: false | |
| android: true | |
| dotnet: true | |
| haskell: true | |
| large-packages: false | |
| docker-images: false | |
| swap-storage: false | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set release environment variable | |
| run: echo "EXTRA_GRADLE_ARGS=-PreleaseMode" >> $GITHUB_ENV | |
| if: startsWith(github.ref, 'refs/tags/v2027') | |
| - name: Build with Gradle | |
| uses: addnab/docker-run-action@v3 | |
| with: | |
| image: ${{ matrix.container }} | |
| options: -v ${{ github.workspace }}:/work -w /work -e ARTIFACTORY_PUBLISH_USERNAME -e ARTIFACTORY_PUBLISH_PASSWORD -e GITHUB_REF -e CI | |
| run: df . && rm -f semicolon_delimited_script && echo $GITHUB_REF && ./gradlew build --build-cache -PbuildServer -PskipJavaFormat ${{ matrix.build-options }} ${{ env.EXTRA_GRADLE_ARGS }} | |
| env: | |
| ARTIFACTORY_PUBLISH_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} | |
| ARTIFACTORY_PUBLISH_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} | |
| - name: Check free disk space | |
| run: df . | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.artifact-name }} | |
| path: build/allOutputs | |
| build-host: | |
| env: | |
| MACOSX_DEPLOYMENT_TARGET: 13.3 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: windows-2022 | |
| artifact-name: Win64Debug | |
| architecture: x64 | |
| task: "build" | |
| build-options: "-PciDebugOnly" | |
| outputs: "build/allOutputs" | |
| - os: windows-2022 | |
| artifact-name: Win64Release | |
| architecture: x64 | |
| build-options: "-PciReleaseOnly" | |
| task: "copyAllOutputs" | |
| outputs: "build/allOutputs" | |
| - os: windows-2022 | |
| artifact-name: WinArm64Debug | |
| architecture: x64 | |
| task: "build" | |
| build-options: "-PciDebugOnly -Pbuildwinarm64 -Ponlywindowsarm64" | |
| outputs: "build/allOutputs" | |
| - os: windows-2022 | |
| artifact-name: WinArm64Release | |
| architecture: x64 | |
| build-options: "-PciReleaseOnly -Pbuildwinarm64 -Ponlywindowsarm64" | |
| task: "copyAllOutputs" | |
| outputs: "build/allOutputs" | |
| - os: macOS-14 | |
| artifact-name: macOS | |
| architecture: aarch64 | |
| task: "build" | |
| outputs: "build/allOutputs" | |
| - os: windows-2022 | |
| artifact-name: Win64FFI | |
| architecture: x64 | |
| task: ":ntcoreffi:build" | |
| build-options: "-Pntcoreffibuild -Pbuildwinarm64" | |
| outputs: "ntcoreffi/build/outputs" | |
| name: "Build - ${{ matrix.artifact-name }}" | |
| runs-on: ${{ matrix.os }} | |
| needs: [validation] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: 21 | |
| architecture: ${{ matrix.architecture }} | |
| - name: Import Developer ID Certificate | |
| uses: wpilibsuite/import-signing-certificate@v2 | |
| with: | |
| certificate-data: ${{ secrets.APPLE_CERTIFICATE_DATA }} | |
| certificate-passphrase: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} | |
| keychain-password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }} | |
| if: | | |
| matrix.artifact-name == 'macOS' && (github.repository == 'wpilibsuite/allwpilib' && | |
| (github.ref == 'refs/heads/2027' || startsWith(github.ref, 'refs/tags/v2027'))) | |
| - name: Set Keychain Lock Timeout | |
| run: security set-keychain-settings -lut 21600 | |
| if: | | |
| matrix.artifact-name == 'macOS' && (github.repository == 'wpilibsuite/allwpilib' && | |
| (github.ref == 'refs/heads/2027' || startsWith(github.ref, 'refs/tags/v2027'))) | |
| - name: Set release environment variable | |
| run: echo "EXTRA_GRADLE_ARGS=-PreleaseMode" >> $GITHUB_ENV | |
| shell: bash | |
| if: startsWith(github.ref, 'refs/tags/v2027') | |
| - name: Check disk free space (Windows) | |
| run: wmic logicaldisk get caption, freespace | |
| if: matrix.os == 'windows-2022' | |
| - name: Check disk free space pre-cleanup (macOS) | |
| run: df -h . | |
| if: matrix.os == 'macOS-14' | |
| - name: Cleanup disk space | |
| # CodeQL: 5G | |
| # go: 748M | |
| # Android: 12G | |
| run: | | |
| rm -rf /Users/runner/hostedtoolcache/CodeQL | |
| rm -rf /Users/runner/hostedtoolcache/go | |
| rm -rf /Users/runner/Library/Android | |
| if: matrix.os == 'macOS-14' | |
| - name: Check disk free space post-cleanup (macOS) | |
| run: df -h . | |
| if: matrix.os == 'macOS-14' | |
| - name: Build with Gradle | |
| run: ./gradlew ${{ matrix.task }} --build-cache -PbuildServer -PskipJavaFormat ${{ matrix.build-options }} ${{ env.EXTRA_GRADLE_ARGS }} | |
| env: | |
| ARTIFACTORY_PUBLISH_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} | |
| ARTIFACTORY_PUBLISH_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} | |
| - name: Sign Libraries with Developer ID | |
| run: ./gradlew copyAllOutputs --build-cache -PbuildServer -PskipJavaFormat -PdeveloperID=${{ secrets.APPLE_DEVELOPER_ID }} ${{ matrix.build-options }} ${{ env.EXTRA_GRADLE_ARGS }} | |
| if: | | |
| matrix.artifact-name == 'macOS' && (github.repository == 'wpilibsuite/allwpilib' && | |
| (github.ref == 'refs/heads/2027' || startsWith(github.ref, 'refs/tags/v2027'))) | |
| - name: Check disk free space (Windows) | |
| run: wmic logicaldisk get caption, freespace | |
| if: matrix.os == 'windows-2022' | |
| - name: Check disk free space (macOS) | |
| run: df -h . | |
| if: matrix.os == 'macOS-14' | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.artifact-name }} | |
| path: ${{ matrix.outputs }} | |
| build-documentation: | |
| name: "Build - Documentation" | |
| runs-on: ubuntu-24.04 | |
| needs: [validation] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: 21 | |
| - name: Set release environment variable | |
| run: echo "EXTRA_GRADLE_ARGS=-PreleaseMode" >> $GITHUB_ENV | |
| if: startsWith(github.ref, 'refs/tags/v2027') | |
| - name: Build with Gradle | |
| run: ./gradlew docs:zipDocs --build-cache -PbuildServer ${{ env.EXTRA_GRADLE_ARGS }} | |
| env: | |
| ARTIFACTORY_PUBLISH_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} | |
| ARTIFACTORY_PUBLISH_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: Documentation | |
| path: docs/build/outputs | |
| combine: | |
| name: Combine | |
| needs: [build-docker, build-host, build-documentation] | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Free Disk Space | |
| if: | | |
| github.repository == 'wpilibsuite/allwpilib' && | |
| (github.ref == 'refs/heads/2027' || startsWith(github.ref, 'refs/tags/v2027')) | |
| uses: jlumbroso/free-disk-space@main | |
| with: | |
| tool-cache: false | |
| android: true | |
| dotnet: true | |
| haskell: true | |
| large-packages: false | |
| docker-images: false | |
| swap-storage: false | |
| - uses: actions/checkout@v4 | |
| if: | | |
| github.repository == 'wpilibsuite/allwpilib' && | |
| (github.ref == 'refs/heads/2027' || startsWith(github.ref, 'refs/tags/v2027')) | |
| with: | |
| repository: wpilibsuite/build-tools | |
| - uses: actions/download-artifact@v4 | |
| if: | | |
| github.repository == 'wpilibsuite/allwpilib' && | |
| (github.ref == 'refs/heads/2027' || startsWith(github.ref, 'refs/tags/v2027')) | |
| with: | |
| path: combiner/products/build/allOutputs | |
| - name: Flatten Artifacts | |
| if: | | |
| github.repository == 'wpilibsuite/allwpilib' && | |
| (github.ref == 'refs/heads/2027' || startsWith(github.ref, 'refs/tags/v2027')) | |
| run: rsync -a --delete combiner/products/build/allOutputs/*/* combiner/products/build/allOutputs/ | |
| - name: Check version number exists | |
| if: | | |
| github.repository == 'wpilibsuite/allwpilib' && | |
| (github.ref == 'refs/heads/2027' || startsWith(github.ref, 'refs/tags/v2027')) | |
| run: | | |
| cat combiner/products/build/allOutputs/version.txt | |
| test -s combiner/products/build/allOutputs/version.txt | |
| - uses: actions/setup-java@v4 | |
| if: | | |
| github.repository == 'wpilibsuite/allwpilib' && | |
| (github.ref == 'refs/heads/2027' || startsWith(github.ref, 'refs/tags/v2027')) | |
| with: | |
| distribution: 'temurin' | |
| java-version: 21 | |
| - name: Combine (2027) | |
| if: | | |
| github.repository == 'wpilibsuite/allwpilib' && | |
| github.ref == 'refs/heads/2027' | |
| run: cd combiner && ./gradlew publish -Pallwpilib -Pbuild2027 | |
| env: | |
| RUN_AZURE_ARTIFACTORY_RELEASE: "TRUE" | |
| ARTIFACTORY_PUBLISH_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} | |
| ARTIFACTORY_PUBLISH_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} | |
| - name: Combine (2027 Release) | |
| if: | | |
| github.repository == 'wpilibsuite/allwpilib' && | |
| startsWith(github.ref, 'refs/tags/v2027') | |
| run: cd combiner && ./gradlew publish -Pallwpilib -PreleaseRepoPublish -Pbuild2027 | |
| env: | |
| RUN_AZURE_ARTIFACTORY_RELEASE: "TRUE" | |
| ARTIFACTORY_PUBLISH_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} | |
| ARTIFACTORY_PUBLISH_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} | |
| - uses: actions/upload-artifact@v4 | |
| if: | | |
| github.repository == 'wpilibsuite/allwpilib' && | |
| (github.ref == 'refs/heads/2027' || startsWith(github.ref, 'refs/tags/v2027')) | |
| with: | |
| name: Maven | |
| path: ~/releases |