Skip to content

Platform Tests

Platform Tests #7

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
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:
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