-
Notifications
You must be signed in to change notification settings - Fork 798
[CI] New workflow for Nightly on sycl-rel #16297
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 7 commits
dc6c35a
90d0d95
c1a5be8
7abb7b1
db359e0
e39dae8
41dce6d
28542cd
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,181 @@ | ||
| name: SYCL Release Branch Nightly | ||
|
|
||
| on: | ||
| workflow_dispatch: | ||
| schedule: | ||
| - cron: '0 3 * * *' | ||
|
|
||
| permissions: read-all | ||
|
|
||
| env: | ||
| # NOTE: so that GitHub Actions can trigger the scheduled workflow run - the | ||
| # workflow file should be on the default branch. Therefore every job should | ||
| # checkout the release branch. | ||
| SYCL_REL_BRANCH: "draft-sycl-rel-6_0_0" | ||
|
|
||
| jobs: | ||
| # To avoid unnecessary scheduled runs this job checks if there are new commits | ||
| # since the last run. More precisely, it checks if the last commit is older | ||
| # than 24h. That means the previous Nightly already tested this commit. | ||
| check_for_new_commits: | ||
| runs-on: ubuntu-latest | ||
| name: Check for new commits | ||
| outputs: | ||
| is_new_commit: ${{ steps.is_new_commit.outputs.is_new_commit }} | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| with: | ||
| ref: ${{ env.SYCL_REL_BRANCH }} | ||
| - run: git show --quiet | tee -a $GITHUB_STEP_SUMMARY | ||
|
|
||
| - id: is_new_commit | ||
| if: ${{ github.event_name == 'schedule' }} | ||
| run: | | ||
| if [ -z "$(git rev-list --after="24 hours" HEAD)" ]; then | ||
| echo "is_new_commit=false" >> $GITHUB_OUTPUT | ||
| fi | ||
|
|
||
| ubuntu2204_build: | ||
| needs: [check_for_new_commits] | ||
| if: ${{ github.repository == 'intel/llvm' && needs.check_for_new_commits.outputs.is_new_commit != 'false' }} | ||
| uses: ./.github/workflows/sycl-linux-build.yml | ||
| secrets: inherit | ||
| with: | ||
| build_cache_root: "/__w/" | ||
| build_artifact_suffix: v6 | ||
| build_configure_extra_args: '--hip --cuda' | ||
| merge_ref: '' | ||
| ref: ${{ env.SYCL_REL_BRANCH }} | ||
|
|
||
| # We upload the build for people to download/use, override its name and | ||
| # prefer widespread gzip compression. | ||
| artifact_archive_name: sycl_linux.tar.gz | ||
|
|
||
| ubuntu2204_test: | ||
| needs: [ubuntu2204_build] | ||
| if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| - name: AMD/HIP | ||
| runner: '["Linux", "amdgpu"]' | ||
| image: ghcr.io/intel/llvm/ubuntu2204_build:latest | ||
| image_options: -u 1001 --device=/dev/dri --device=/dev/kfd | ||
| target_devices: ext_oneapi_hip:gpu | ||
| tests_selector: e2e | ||
|
|
||
| - name: Intel L0 GPU | ||
| runner: '["Linux", "gen12"]' | ||
| image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest | ||
| image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN | ||
| target_devices: level_zero:gpu | ||
| reset_intel_gpu: true | ||
| tests_selector: e2e | ||
| extra_lit_opts: --param gpu-intel-gen12=True | ||
|
|
||
| - name: Intel OCL GPU | ||
| runner: '["Linux", "gen12"]' | ||
| image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest | ||
| image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN | ||
| target_devices: opencl:gpu | ||
| reset_intel_gpu: true | ||
| tests_selector: e2e | ||
| extra_lit_opts: --param gpu-intel-gen12=True | ||
|
|
||
| - name: Intel OCL CPU | ||
| runner: '["Linux", "gen12"]' | ||
| image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest | ||
| image_options: -u 1001 --privileged --cap-add SYS_ADMIN | ||
| target_devices: opencl:cpu | ||
| tests_selector: e2e | ||
|
|
||
| - name: SYCL-CTS on OCL CPU | ||
| runner: '["Linux", "gen12"]' | ||
| image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest | ||
| image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN | ||
| target_devices: opencl:cpu | ||
| tests_selector: cts | ||
|
|
||
| - name: SYCL-CTS on L0 gen12 | ||
| runner: '["Linux", "gen12"]' | ||
| image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest | ||
| image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN | ||
| target_devices: level_zero:gpu | ||
| tests_selector: cts | ||
| uses: ./.github/workflows/sycl-linux-run-tests.yml | ||
| with: | ||
| name: ${{ matrix.name }} | ||
| runner: ${{ matrix.runner }} | ||
| image: ${{ matrix.image }} | ||
| image_options: ${{ matrix.image_options }} | ||
| target_devices: ${{ matrix.target_devices }} | ||
| tests_selector: ${{ matrix.tests_selector }} | ||
| extra_lit_opts: ${{ matrix.extra_lit_opts }} | ||
| reset_intel_gpu: ${{ matrix.reset_intel_gpu }} | ||
| ref: ${{ env.SYCL_REL_BRANCH }} | ||
| merge_ref: '' | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. is there any way we can share all of this because it seems really similar to existing code? can we make a reusable workflow or something?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. By "share all of this" do you mean this job or the whole workflow? The code is really similar, but the matrix is a bit different from what we have in the normal Nightly. And it may be modified in the future.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There is a high chance that we will also have different build configurations. For example, if we are going to release binaries from release branch, then we most likely don't want them to be built with assertions. Even though there is a lot of similarity, I think that it is maybe ok. Going forward, we may have multiple release branches being active at the same time (due to long release schedule two may overlap a bit) and therefore we may have some unique things in this workflow to trigger it in an interesting way |
||
| sycl_toolchain_artifact: sycl_linux_default | ||
| sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }} | ||
| sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }} | ||
|
|
||
| build-win: | ||
| needs: [check_for_new_commits] | ||
| if: ${{ github.repository == 'intel/llvm' && needs.check_for_new_commits.outputs.is_new_commit != 'false' }} | ||
| uses: ./.github/workflows/sycl-windows-build.yml | ||
| with: | ||
| retention-days: 90 | ||
KornevNikita marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| # We upload both Linux/Windows build via Github's "Releases" | ||
| # functionality, make sure Linux/Windows names follow the same pattern. | ||
| artifact_archive_name: sycl_windows.tar.gz | ||
| build_ref: ${{ env.SYCL_REL_BRANCH }} | ||
|
|
||
| e2e-win: | ||
| needs: build-win | ||
| # Continue if build was successful. | ||
| if: | | ||
| always() | ||
| && !cancelled() | ||
| && needs.build-win.outputs.build_conclusion == 'success' | ||
| uses: ./.github/workflows/sycl-windows-run-tests.yml | ||
| with: | ||
| name: Intel GEN12 Graphics with Level Zero | ||
| runner: '["Windows","gen12"]' | ||
| sycl_toolchain_archive: ${{ needs.build-win.outputs.artifact_archive_name }} | ||
| extra_lit_opts: --param gpu-intel-gen12=True | ||
| ref: ${{ env.SYCL_REL_BRANCH }} | ||
|
|
||
| cuda-aws-start: | ||
| needs: [ubuntu2204_build] | ||
| if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} | ||
| uses: ./.github/workflows/sycl-aws.yml | ||
| secrets: inherit | ||
| with: | ||
| mode: start | ||
| ref: ${{ env.SYCL_REL_BRANCH }} | ||
|
|
||
| cuda-run-tests: | ||
| needs: [ubuntu2204_build, cuda-aws-start] | ||
| if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} | ||
| uses: ./.github/workflows/sycl-linux-run-tests.yml | ||
| with: | ||
| name: CUDA E2E | ||
| runner: '["aws_cuda-${{ github.run_id }}-${{ github.run_attempt }}"]' | ||
| image: ghcr.io/intel/llvm/ubuntu2204_build:latest-0300ac924620a51f76c4929794637b82790f12ab | ||
| image_options: -u 1001 --gpus all --cap-add SYS_ADMIN --env NVIDIA_DISABLE_REQUIRE=1 | ||
| target_devices: ext_oneapi_cuda:gpu | ||
| ref: ${{ env.SYCL_REL_BRANCH }} | ||
| merge_ref: '' | ||
|
|
||
| sycl_toolchain_artifact: sycl_linux_default | ||
| sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }} | ||
| sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }} | ||
|
|
||
| cuda-aws-stop: | ||
| needs: [cuda-aws-start, cuda-run-tests] | ||
| if: always() | ||
| uses: ./.github/workflows/sycl-aws.yml | ||
| secrets: inherit | ||
| with: | ||
| mode: stop | ||
| ref: ${{ env.SYCL_REL_BRANCH }} | ||
Uh oh!
There was an error while loading. Please reload this page.