Daily #191
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: Daily | |
| permissions: read-all | |
| on: | |
| # Run on user request | |
| workflow_dispatch: | |
| inputs: | |
| upload_sdl: | |
| description: 'Trigger SDL Upload' | |
| required: false | |
| default: false | |
| type: boolean | |
| docker_opts: | |
| description: 'extra options for docker build' | |
| required: false | |
| default: '' | |
| type: string | |
| # Run on schedule | |
| schedule: | |
| # daily at 8:00 UTC (1:00 MST) | |
| - cron: '0 8 * * *' | |
| concurrency: | |
| # Cancel any existing jobs related to the target branch | |
| group: nightly-ci-${{ github.ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint: | |
| if: true | |
| uses: ./.github/workflows/lint.yml | |
| with: | |
| docker_opts: ${{ inputs.docker_opts }} | |
| scorecard: | |
| if: true | |
| uses: ./.github/workflows/scorecard.yml | |
| hadolint: | |
| if: true | |
| uses: ./.github/workflows/hadolint.yml | |
| with: | |
| output_prefix: lib- | |
| trivy: | |
| if: true | |
| uses: ./.github/workflows/trivy.yml | |
| with: | |
| output_prefix: lib- | |
| ip-leak-scan: | |
| if: true | |
| name: IP Leak Scan | |
| uses: ./.github/workflows/ipldt.yml | |
| secrets: inherit | |
| with: | |
| output_prefix: lib- | |
| docker_opts: ${{ inputs.docker_opts }} | |
| source-malware-scan: | |
| if: true | |
| uses: ./.github/workflows/mcafee.yml | |
| secrets: inherit | |
| with: | |
| output_prefix: lib- | |
| docker_opts: ${{ inputs.docker_opts }} | |
| coverity: | |
| if: true | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - windows | |
| - linux | |
| uses: ./.github/workflows/coverity.yml | |
| secrets: inherit | |
| with: | |
| os: ${{ matrix.os }} | |
| output_prefix: lib- | |
| extra_opts: --report | |
| docker_opts: ${{ inputs.docker_opts }} | |
| linux-build: | |
| if: true | |
| uses: ./.github/workflows/cmake.yml | |
| with: | |
| os: linux | |
| build_type: release | |
| artifact_name: linux-release-build | |
| run_tests: true | |
| no_artifacts: false | |
| docker_opts: ${{ inputs.docker_opts }} | |
| windows-build: | |
| if: true | |
| uses: ./.github/workflows/cmake.yml | |
| with: | |
| os: windows | |
| build_type: release | |
| artifact_name: windows-release-build | |
| run_tests: true | |
| no_artifacts: false | |
| docker_opts: ${{ inputs.docker_opts }} | |
| windows-malware-scan: | |
| if: true | |
| needs: [windows-build] | |
| uses: ./.github/workflows/mcafee.yml | |
| secrets: inherit | |
| with: | |
| artifact_name: windows-release-build | |
| output_prefix: lib- | |
| docker_opts: ${{ inputs.docker_opts }} | |
| linux-malware-scan: | |
| if: true | |
| needs: [linux-build] | |
| uses: ./.github/workflows/mcafee.yml | |
| secrets: inherit | |
| with: | |
| artifact_name: linux-release-build | |
| output_prefix: lib- | |
| windows-sscb: | |
| if: true | |
| needs: [windows-build] | |
| uses: ./.github/workflows/sscb.yml | |
| with: | |
| os: windows | |
| artifact_name: windows-release-build | |
| output_prefix: lib- | |
| docker_opts: ${{ inputs.docker_opts }} | |
| linux-sscb: | |
| if: true | |
| needs: [linux-build] | |
| uses: ./.github/workflows/sscb.yml | |
| with: | |
| os: linux | |
| artifact_name: linux-release-build | |
| output_prefix: lib- | |
| docker_opts: ${{ inputs.docker_opts }} | |
| bdba: | |
| if: true | |
| needs: | |
| - linux-build | |
| - windows-build | |
| uses: ./.github/workflows/bdba.yml | |
| with: | |
| output_prefix: lib- | |
| version: ${{ github.ref_name }} | |
| pattern: "*-release-build" | |
| docker_opts: ${{ inputs.docker_opts }} | |
| secrets: inherit | |
| sdl: | |
| if: ${{ github.event.inputs.upload_sdl == 'true' }} | |
| needs: | |
| - linux-build | |
| - windows-build | |
| - summary | |
| - setup-variables | |
| uses: ./.github/workflows/sdl.yml | |
| with: | |
| SUMMARY_ARTIFACT: lib-release-summary | |
| label: ${{ needs.setup-variables.outputs.lib_version }} | |
| SDLE_PROJECT: ${{vars.SDLE_ID}} | |
| SDLE_USER: ${{vars.SDLE_API_USER}} | |
| output_prefix: lib- | |
| docker_opts: ${{ inputs.docker_opts }} | |
| secrets: | |
| SDLE_API_KEY: ${{ secrets.SDLE_API_KEY }} | |
| # This job configures variables that are useful for other jobs. Other jobs | |
| # that depend on this one can access the variables via | |
| # needs.setup-variables.outputs.<variable-name> | |
| setup-variables: | |
| if: true | |
| uses: ./.github/workflows/setup-variables.yml | |
| secrets: inherit | |
| ref-build: | |
| if: true | |
| needs: setup-variables | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - windows | |
| - linux | |
| uses: ./.github/workflows/cmake.yml | |
| with: | |
| os: ${{ matrix.os }} | |
| build_type: release | |
| artifact_name: ${{ matrix.os }}-ref-build | |
| run_tests: false | |
| no_artifacts: false | |
| ref: ${{ needs.setup-variables.outputs.last_release_ref }} | |
| docker_opts: ${{ inputs.docker_opts }} | |
| diff-report: | |
| if: true | |
| needs: [linux-build, windows-build, ref-build] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [windows, linux] | |
| uses: ./.github/workflows/diff.yml | |
| with: | |
| report_name: ${{ matrix.os }}-lib-diff-report | |
| left: ${{ matrix.os }}-ref-build | |
| right: ${{ matrix.os }}-release-build | |
| linux-tools-build: | |
| if: true | |
| needs: [linux-build, setup-variables] | |
| uses: ./.github/workflows/cmake.yml | |
| with: | |
| os: linux | |
| build_type: release | |
| artifact_name: linux-tools-build | |
| run_tests: false | |
| no_artifacts: false | |
| repository: ${{ vars.TOOLS_REPO }} | |
| ref: ${{ needs.setup-variables.outputs.tools_ref }} | |
| dependent_artifact: linux-release-build | |
| docker_opts: ${{ inputs.docker_opts }} | |
| secrets: | |
| token: ${{ secrets.TOOLS_REPO_TOKEN }} | |
| windows-tools-build: | |
| if: true | |
| needs: [windows-build, setup-variables] | |
| uses: ./.github/workflows/cmake.yml | |
| with: | |
| os: windows | |
| build_type: release | |
| artifact_name: windows-tools-build | |
| run_tests: false | |
| no_artifacts: false | |
| repository: ${{ vars.TOOLS_REPO }} | |
| ref: ${{ needs.setup-variables.outputs.tools_ref }} | |
| dependent_artifact: windows-release-build | |
| docker_opts: ${{ inputs.docker_opts }} | |
| secrets: | |
| token: ${{ secrets.TOOLS_REPO_TOKEN }} | |
| windows-acceptance: | |
| if: true | |
| needs: [windows-build, windows-tools-build, setup-variables] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| gpu: | |
| - gen12.5 | |
| config: | |
| - release | |
| os: | |
| - windows | |
| uses: ./.github/workflows/acceptance.yml | |
| secrets: inherit | |
| with: | |
| os: ${{ matrix.os }} | |
| build_type: ${{ matrix.config }} | |
| lib_artifact: ${{ matrix.os }}-${{ matrix.config }}-build | |
| tools_artifact: windows-tools-build | |
| gpu: ${{ matrix.gpu }} | |
| distro_family: windows | |
| distro_version: 11 | |
| test_ref: ${{ needs.setup-variables.outputs.test_ref }} | |
| docker_opts: ${{ inputs.docker_opts }} | |
| linux-acceptance: | |
| if: true | |
| needs: [linux-build, linux-tools-build, setup-variables] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| gpu: | |
| - gen12.5 | |
| distro: | |
| - family: ubuntu | |
| version: 22.04 | |
| config: | |
| - release | |
| os: | |
| - linux | |
| uses: ./.github/workflows/acceptance.yml | |
| secrets: inherit | |
| with: | |
| os: ${{ matrix.os }} | |
| build_type: ${{ matrix.config }} | |
| lib_artifact: ${{ matrix.os }}-${{ matrix.config }}-build | |
| tools_artifact: linux-tools-build | |
| gpu: ${{ matrix.gpu }} | |
| distro_family: ${{ matrix.distro.family }} | |
| distro_version: ${{ matrix.distro.version }} | |
| test_ref: ${{ needs.setup-variables.outputs.test_ref }} | |
| docker_opts: ${{ inputs.docker_opts }} | |
| distro-tests: | |
| if: true | |
| needs: [linux-build, linux-tools-build, setup-variables] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| distro: | |
| - family: rhel | |
| version: 8.6 | |
| - family: sles | |
| version: 15.4 | |
| gpu: | |
| - gen12.5 | |
| os: | |
| - linux | |
| config: | |
| - release | |
| uses: ./.github/workflows/acceptance.yml | |
| secrets: inherit | |
| with: | |
| os: ${{ matrix.os }} | |
| build_type: ${{ matrix.config }} | |
| lib_artifact: ${{ matrix.os }}-${{ matrix.config }}-build | |
| tools_artifact: linux-tools-build | |
| gpu: ${{ matrix.gpu }} | |
| distro_family: ${{ matrix.distro.family }} | |
| distro_version: ${{ matrix.distro.version }} | |
| test_ref: ${{ needs.setup-variables.outputs.test_ref }} | |
| docker_opts: ${{ inputs.docker_opts }} | |
| debug-build: | |
| if: true | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - windows | |
| - linux | |
| config: | |
| - debug | |
| uses: ./.github/workflows/cmake.yml | |
| with: | |
| os: ${{ matrix.os }} | |
| build_type: ${{ matrix.config }} | |
| artifact_name: ${{ matrix.os }}-${{ matrix.config }}-build | |
| run_tests: true | |
| docker_opts: ${{ inputs.docker_opts }} | |
| tools-debug-build: | |
| if: true | |
| needs: [debug-build, setup-variables] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - windows | |
| - linux | |
| uses: ./.github/workflows/cmake.yml | |
| with: | |
| os: ${{ matrix.os }} | |
| build_type: debug | |
| artifact_name: ${{ matrix.os }}-tools-debug-build | |
| run_tests: false | |
| no_artifacts: false | |
| repository: ${{ vars.TOOLS_REPO }} | |
| ref: ${{ needs.setup-variables.outputs.tools_ref }} | |
| dependent_artifact: ${{ matrix.os }}-debug-build | |
| docker_opts: ${{ inputs.docker_opts }} | |
| secrets: | |
| token: ${{ secrets.TOOLS_REPO_TOKEN }} | |
| debug-acceptance: | |
| if: true | |
| needs: | |
| - setup-variables | |
| - debug-build | |
| - tools-debug-build | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - windows | |
| - linux | |
| gpu: | |
| - gen12.5 | |
| uses: ./.github/workflows/acceptance.yml | |
| secrets: inherit | |
| with: | |
| os: ${{ matrix.os }} | |
| build_type: debug | |
| lib_artifact: ${{ matrix.os }}-debug-build | |
| tools_artifact: ${{ matrix.os }}-tools-debug-build | |
| gpu: ${{ matrix.gpu }} | |
| distro_family: ${{ matrix.os == 'linux' && 'ubuntu' || 'windows' }} | |
| distro_version: ${{ matrix.os == 'linux' && '22.04' || '11'}} | |
| test_ref: ${{ needs.setup-variables.outputs.test_ref }} | |
| docker_opts: ${{ inputs.docker_opts }} | |
| experimental-off: | |
| if: true | |
| uses: ./.github/workflows/cmake.yml | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - windows | |
| - linux | |
| with: | |
| os: ${{ matrix.os }} | |
| build_type: release | |
| run_tests: true | |
| no_artifacts: true | |
| configure_options: >- | |
| -DBUILD_EXPERIMENTAL=OFF | |
| docker_opts: ${{ inputs.docker_opts }} | |
| linux-performance: | |
| if: true | |
| needs: | |
| - linux-build | |
| - ref-build | |
| uses: ./.github/workflows/performance.yml | |
| with: | |
| image: ${{ vars.PERF_DOCKER_IMAGE }} | |
| ref_lib_artifact: linux-ref-build | |
| lib_artifact: linux-release-build | |
| artifact_name: linux-performance | |
| summary: | |
| if: "always()" | |
| needs: | |
| - hadolint | |
| - trivy | |
| - ip-leak-scan | |
| - source-malware-scan | |
| - coverity | |
| - windows-malware-scan | |
| - linux-malware-scan | |
| - windows-sscb | |
| - linux-sscb | |
| - bdba | |
| - diff-report | |
| - windows-acceptance | |
| - linux-acceptance | |
| - distro-tests | |
| - linux-performance | |
| uses: ./.github/workflows/summary.yml | |
| with: | |
| output_prefix: lib- |