Skip to content

Merge pull request #2144 from recommenders-team/daviddavo/lightfm-exp… #458

Merge pull request #2144 from recommenders-team/daviddavo/lightfm-exp…

Merge pull request #2144 from recommenders-team/daviddavo/lightfm-exp… #458

# ---------------------------------------------------------
# Copyright (c) Recommenders contributors.
# Licensed under the MIT License.
# ---------------------------------------------------------
name: azureml-spark-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: "spark"
- 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
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_CREDENTIALS: ${{ secrets.AZUREML_TEST_CREDENTIALS }}
AZUREML_TEST_SUBID: ${{ secrets.AZUREML_TEST_SUBID }}
PYTHON_VERSION: ${{ matrix.python-version }}
TEST_GROUP: ${{ matrix.test-group }}