|
name: Pytest GPU |
|
on: |
|
workflow_call: |
|
inputs: |
|
container: |
|
required: true |
|
type: string |
|
mcloud-timeout: |
|
required: false |
|
type: number |
|
default: 1800 |
|
name: |
|
required: true |
|
type: string |
|
pytest-command: |
|
required: true |
|
type: string |
|
pytest-markers: |
|
required: true |
|
type: string |
|
python-version: |
|
required: false |
|
type: string |
|
default: 3.9 |
|
secrets: |
|
mcloud-api-key: |
|
required: true |
|
jobs: |
|
pytest-gpu: |
|
timeout-minutes: 60 |
|
runs-on: ubuntu-latest |
|
env: |
|
MOSAICML_API_KEY: ${{ secrets.mcloud-api-key }} |
|
steps: |
|
- name: Checkout Repo |
|
uses: actions/checkout@v3 |
|
- name: Setup Python |
|
uses: actions/setup-python@v4 |
|
with: |
|
python-version: ${{ inputs.python-version }} |
|
- name: Cache pip |
|
uses: actions/cache@v3 |
|
with: |
|
|
|
path: ~/.cache/pip |
|
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }} |
|
restore-keys: | |
|
${{ runner.os }}-pip- |
|
${{ runner.os }}- |
|
- name: Setup MCLI |
|
run: | |
|
set -ex |
|
python -m pip install mosaicml-cli |
|
mcli init --mcloud |
|
mcli version |
|
- name: Submit Run |
|
id: tests |
|
run: | |
|
set -ex |
|
|
|
PR_NUMBER="$(jq --raw-output .pull_request.number "$GITHUB_EVENT_PATH")" |
|
REF_ARGS="" |
|
|
|
|
|
if [ -z "$PR_NUMBER" ] || [ "$PR_NUMBER" = "null" ]; then |
|
if [[ "$GITHUB_REF" =~ "refs/heads/main" || "$GITHUB_REF" =~ "refs/heads/release" ]]; then |
|
REF_ARGS="--git_commit $GITHUB_SHA" |
|
else |
|
REF_ARGS="--git_branch $GITHUB_REF_NAME" |
|
fi |
|
else |
|
REF_ARGS="--pr_number $PR_NUMBER" |
|
fi |
|
|
|
python .github/mcp/mcp_pytest.py \ |
|
--image '${{ inputs.container }}' \ |
|
--pytest_markers '${{ inputs.pytest-markers }}' \ |
|
--pytest_command '${{ inputs.pytest-command }}' \ |
|
--timeout ${{ inputs.mcloud-timeout }} ${REF_ARGS} |
|
|