Platform Tests #17
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
name: Platform Tests | |
on: | |
schedule: | |
- cron: '59 07 * * *' # UTC 7:59(23:59 PST Winter Time) everyday | |
workflow_dispatch: | |
inputs: | |
repository: | |
description: 'The repository from which the slash command was dispatched' | |
required: true | |
comment-id: | |
description: 'The comment-id of the slash command' | |
required: true | |
pr-sha: | |
description: 'The pr-sha of which the slash command was dispatched' | |
required: true | |
branch_or_pr_number: | |
description: 'dummy parameter to allow benchmark workflow to run' | |
required: false | |
fork_info: | |
description: 'Get info of forked repository and branch' | |
required: false | |
permissions: | |
contents: read | |
id-token: write | |
jobs: | |
setup: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Create URL to the run output | |
if: (github.event_name == 'workflow_dispatch') | |
id: vars | |
run: echo ::set-output name=run-url::https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID | |
- name: Create comment | |
if: (github.event_name == 'workflow_dispatch') | |
uses: peter-evans/create-or-update-comment@v4 | |
with: | |
token: ${{ secrets.CICD_PAT }} | |
repository: ${{ github.event.inputs.repository }} | |
comment-id: ${{ github.event.inputs.comment-id }} | |
body: | | |
[Platform Tests Output][1] | |
[1]: ${{ steps.vars.outputs.run-url }} | |
install: | |
needs: setup | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-latest, windows-latest, ubuntu-latest] | |
python: ["3.9", "3.10", "3.11"] | |
steps: | |
- name: Checkout repository for PR | |
if: (github.event_name == 'workflow_dispatch') | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.inputs.pr-sha }} | |
- name: Checkout repository for nightly test | |
if: (github.event_name == 'schedule') | |
uses: actions/checkout@v4 | |
- name: Setup Miniconda | |
uses: conda-incubator/setup-miniconda@v3 | |
with: | |
activate-environment: assistant_py3 | |
environment-file: .github/workflows_env/unittest_env.yml | |
auto-update-conda: true | |
python-version: ${{ matrix.python }} | |
miniconda-version: "latest" | |
- name: Setup OMP # This is needed for macos-latest to avoid the error lightgbm macOS issue | |
if: matrix.os == 'macos-latest' | |
shell: bash -l {0} | |
run: | | |
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/fb8323f2b170bd4ae97e1bac9bf3e2983af3fdb0/Formula/libomp.rb | |
if brew list | grep -q libomp; then | |
brew unlink libomp | |
fi | |
brew install libomp.rb | |
rm libomp.rb | |
- name: test-install | |
shell: bash -l {0} | |
run: | | |
chmod +x ./.github/workflow_scripts/test_install.sh && ./.github/workflow_scripts/test_install.sh | |
integration_test: | |
needs: setup | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-latest, windows-latest, ubuntu-latest] | |
python: ["3.9", "3.10", "3.11"] | |
steps: | |
- name: Checkout repository for PR | |
if: (github.event_name == 'workflow_dispatch') | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.inputs.pr-sha }} | |
- name: Checkout repository for nightly test | |
if: (github.event_name == 'schedule') | |
uses: actions/checkout@v4 | |
- name: Setup Miniconda | |
uses: conda-incubator/setup-miniconda@v3 | |
with: | |
activate-environment: assistant_py3 | |
environment-file: .github/workflows_env/unittest_env.yml | |
auto-update-conda: true | |
python-version: ${{ matrix.python }} | |
miniconda-version: "latest" | |
- name: Setup OMP for macOS | |
if: matrix.os == 'macos-latest' | |
shell: bash -l {0} | |
run: | | |
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/fb8323f2b170bd4ae97e1bac9bf3e2983af3fdb0/Formula/libomp.rb | |
if brew list | grep -q libomp; then | |
brew unlink libomp | |
fi | |
brew install libomp.rb | |
rm libomp.rb | |
- name: Integration Test | |
uses: ./.github/actions/test-assistant | |
with: | |
aws-role-arn: ${{ secrets.AWS_CI_ROLE_ARN }} | |
submodule-to-test: integration |