azureml-gpu-nightly #483
This file contains 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
# --------------------------------------------------------- | |
# Copyright (c) Recommenders contributors. | |
# Licensed under the MIT License. | |
# --------------------------------------------------------- | |
name: azureml-gpu-nightly | |
on: | |
# ┌───────────── minute (0 - 59) | |
# │ ┌───────────── hour (0 - 23) | |
# │ │ ┌───────────── day of the month (1 - 31) | |
# │ │ │ ┌───────────── month (1 - 12 or JAN-DEC) | |
# │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT) | |
# │ │ │ │ │ | |
# │ │ │ │ │ | |
schedule: | |
- cron: '0 0 */5 * *' # running every 5 days at 12AM | |
# cron works with default branch (main) only: # https://github.community/t/on-schedule-per-branch/17525/2 | |
push: | |
# Because we can't schedule runs for non-main branches, | |
# to ensure we are running the build on the staging branch, we can add push policy for it | |
branches: [staging] | |
paths: | |
# Tests will be run only when there are changes in the code: | |
- examples/** | |
- '!examples/**/*.md' | |
- recommenders/** | |
- '!recommenders/**/*.md' | |
- tests/** | |
- '!tests/**/*.md' | |
- setup.py | |
# Enable manual trigger | |
workflow_dispatch: | |
inputs: | |
tags: | |
description: 'Tags to label this manual run (optional)' | |
default: 'Manual trigger' | |
# Make this workflow reusable | |
workflow_call: | |
jobs: | |
get-test-groups: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: Get test group names | |
id: get_test_groups | |
uses: ./.github/actions/get-test-groups | |
with: | |
TEST_KIND: "nightly" | |
TEST_ENV: "gpu" | |
- name: Print test group names | |
run: echo ${{ steps.get_test_groups.outputs.test_groups }} | |
shell: bash | |
outputs: | |
test_groups: ${{ steps.get_test_groups.outputs.test_groups }} | |
execute-tests: | |
needs: get-test-groups | |
name: ${{ join(matrix.*, ', ') }} | |
runs-on: ubuntu-latest | |
permissions: | |
id-token: write # This is required for requesting the JWT | |
strategy: | |
max-parallel: 50 # Usage limits: https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11"] | |
test-group: ${{ fromJSON(needs.get-test-groups.outputs.test_groups) }} | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: Execute tests | |
uses: ./.github/actions/azureml-test | |
id: execute_tests | |
with: | |
EXP_NAME: recommenders-nightly-${{ matrix.test-group }}-python${{ matrix.python-version }}-${{ github.ref }} | |
ENV_NAME: recommenders-${{ github.sha }}-python${{ matrix.python-version }}${{ contains(matrix.test-group, 'gpu') && '-gpu' || '' }}${{ contains(matrix.test-group, 'spark') && '-spark' || '' }} | |
TEST_KIND: 'nightly' | |
AZUREML_TEST_UMI_CLIENT_ID: ${{ secrets.AZUREML_TEST_UMI_CLIENT_ID }} | |
AZUREML_TEST_UMI_TENANT_ID: ${{ secrets.AZUREML_TEST_UMI_TENANT_ID }} | |
AZUREML_TEST_UMI_SUB_ID: ${{ secrets.AZUREML_TEST_UMI_SUB_ID }} | |
AZUREML_TEST_SUBID: ${{ secrets.AZUREML_TEST_SUBID }} | |
PYTHON_VERSION: ${{ matrix.python-version }} | |
TEST_GROUP: ${{ matrix.test-group }} |