Implemement smoke_test.py for pip wheel jobs #2161
Workflow file for this run
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: trunk | |
on: | |
push: | |
branches: | |
- main | |
- release/* | |
tags: | |
- ciflow/trunk/* | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name == 'workflow_dispatch' }}-${{ github.event_name == 'schedule' }} | |
cancel-in-progress: true | |
jobs: | |
gather-models: | |
runs-on: ubuntu-22.04 | |
outputs: | |
models: ${{ steps.gather-models.outputs.models }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'false' | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Extract the list of models to test | |
id: gather-models | |
run: | | |
set -eux | |
PYTHONPATH="${PWD}" python .ci/scripts/gather_test_models.py --target-os macos --event "${GITHUB_EVENT_NAME}" | |
test-models-macos: | |
name: test-models-macos | |
uses: pytorch/test-infra/.github/workflows/macos_job.yml@release/2.3 | |
needs: gather-models | |
strategy: | |
matrix: ${{ fromJSON(needs.gather-models.outputs.models) }} | |
fail-fast: false | |
with: | |
runner: ${{ matrix.runner }} | |
python-version: '3.11' | |
submodules: 'true' | |
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} | |
timeout: ${{ matrix.timeout }} | |
script: | | |
WORKSPACE=$(pwd) | |
pushd "${WORKSPACE}/pytorch/executorch" | |
MODEL_NAME=${{ matrix.model }} | |
BUILD_TOOL=${{ matrix.build-tool }} | |
BACKEND=${{ matrix.backend }} | |
DEMO_BACKEND_DELEGATION=${{ matrix.demo_backend_delegation }} | |
bash .ci/scripts/setup-conda.sh | |
# Setup MacOS dependencies as there is no Docker support on MacOS atm | |
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/setup-macos.sh "${BUILD_TOOL}" | |
# Build and test xecutorch | |
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/test.sh "${MODEL_NAME}" "${BUILD_TOOL}" "${BACKEND}" "${DEMO_BACKEND_DELEGATION}" | |
popd | |
test-custom-ops-macos: | |
name: test-custom-ops-macos | |
uses: pytorch/test-infra/.github/workflows/macos_job.yml@release/2.3 | |
strategy: | |
matrix: | |
include: | |
- build-tool: cmake | |
fail-fast: false | |
with: | |
runner: macos-m1-stable | |
python-version: '3.11' | |
submodules: 'true' | |
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} | |
script: | | |
WORKSPACE=$(pwd) | |
pushd "${WORKSPACE}/pytorch/executorch" | |
BUILD_TOOL=${{ matrix.build-tool }} | |
bash .ci/scripts/setup-conda.sh | |
# Setup MacOS dependencies as there is no Docker support on MacOS atm | |
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/setup-macos.sh "${BUILD_TOOL}" | |
# Build and test custom ops | |
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash examples/portable/custom_ops/test_custom_ops.sh "${BUILD_TOOL}" | |
popd | |
test-selective-build-macos: | |
name: test-selective-build-macos | |
uses: pytorch/test-infra/.github/workflows/macos_job.yml@release/2.3 | |
strategy: | |
matrix: | |
include: | |
- build-tool: cmake | |
fail-fast: false | |
with: | |
runner: macos-m1-stable | |
python-version: '3.11' | |
submodules: 'true' | |
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} | |
script: | | |
WORKSPACE=$(pwd) | |
pushd "${WORKSPACE}/pytorch/executorch" | |
BUILD_TOOL=${{ matrix.build-tool }} | |
bash .ci/scripts/setup-conda.sh | |
# Setup MacOS dependencies as there is no Docker support on MacOS atm | |
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/setup-macos.sh "${BUILD_TOOL}" | |
# Build and test selective build | |
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash examples/selective_build/test_selective_build.sh "${BUILD_TOOL}" | |
popd | |
test-demo-backend-delegation: | |
name: test-demo-backend-delegation | |
uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.3 | |
strategy: | |
matrix: | |
include: | |
- build-tool: buck2 | |
- build-tool: cmake | |
fail-fast: false | |
with: | |
runner: linux.2xlarge | |
docker-image: executorch-ubuntu-22.04-clang12 | |
submodules: 'true' | |
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} | |
script: | | |
# The generic Linux job chooses to use base env, not the one setup by the image | |
CONDA_ENV=$(conda env list --json | jq -r ".envs | .[-1]") | |
conda activate "${CONDA_ENV}" | |
BUILD_TOOL=${{ matrix.build-tool }} | |
PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh "${BUILD_TOOL}" | |
# Test selective build | |
PYTHON_EXECUTABLE=python bash examples/portable/scripts/test_demo_backend_delegation.sh "${BUILD_TOOL}" | |
test-arm-backend-delegation: | |
name: test-arm-backend-delegation | |
uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.3 | |
with: | |
runner: linux.2xlarge | |
docker-image: executorch-ubuntu-22.04-arm-sdk | |
submodules: 'true' | |
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} | |
script: | | |
# The generic Linux job chooses to use base env, not the one setup by the image | |
CONDA_ENV=$(conda env list --json | jq -r ".envs | .[-1]") | |
conda activate "${CONDA_ENV}" | |
source .ci/scripts/utils.sh | |
install_flatc_from_source | |
install_executorch | |
# Setup arm example environment (including TOSA tools) | |
git config --global user.email "[email protected]" | |
git config --global user.name "Github Executorch" | |
bash examples/arm/setup.sh --i-agree-to-the-contained-eula | |
# Increase number of files user can monitor to bypass buck failures. | |
# Hopefully this is high enough for this setup. | |
sudo sysctl fs.inotify.max_user_watches=1048576 # 1024 * 1024 | |
# Test ethos-u delegate examples with run.sh | |
source examples/arm/ethos-u-scratch/setup_path.sh | |
PYTHON_EXECUTABLE=python bash examples/arm/run.sh examples/arm/ethos-u-scratch/ buck2 | |
test-arm-reference-delegation: | |
name: test-arm-reference-delegation | |
uses: pytorch/test-infra/.github/workflows/linux_job.yml@release/2.3 | |
with: | |
runner: linux.2xlarge | |
docker-image: executorch-ubuntu-22.04-arm-sdk | |
submodules: 'true' | |
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} | |
script: | | |
# The generic Linux job chooses to use base env, not the one setup by the image | |
CONDA_ENV=$(conda env list --json | jq -r ".envs | .[-1]") | |
conda activate "${CONDA_ENV}" | |
source .ci/scripts/utils.sh | |
install_flatc_from_source | |
install_executorch | |
# Setup arm example environment (including TOSA tools) | |
git config --global user.email "[email protected]" | |
git config --global user.name "Github Executorch" | |
bash examples/arm/setup.sh --i-agree-to-the-contained-eula | |
# Test tosa_reference flow | |
source examples/arm/ethos-u-scratch/setup_path.sh | |
PYTHON_EXECUTABLE=python bash backends/arm/test/run_tosa_reference.sh | |
# Run Arm specific unit-tests | |
# Run pytest only on specified folders. These test should migrate into | |
# the _unittest.yml once that test env is fixed | |
pytest -c /dev/null -v -n auto --cov=./ --cov-report=xml backends/arm/test/ops/ backends/arm/test/models | |
test-coreml-delegate: | |
name: test-coreml-delegate | |
uses: pytorch/test-infra/.github/workflows/macos_job.yml@release/2.3 | |
with: | |
runner: macos-13-xlarge | |
python-version: '3.11' | |
submodules: 'true' | |
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} | |
timeout: 90 | |
script: | | |
WORKSPACE=$(pwd) | |
pushd "${WORKSPACE}/pytorch/executorch" | |
BUILD_TOOL=cmake | |
bash .ci/scripts/setup-conda.sh | |
# Setup MacOS dependencies as there is no Docker support on MacOS atm | |
GITHUB_RUNNER=1 PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/setup-macos.sh "${BUILD_TOOL}" | |
# Build and test coreml delegate | |
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash backends/apple/coreml/scripts/build_all.sh | |
popd | |
test-pybind-build-macos: | |
name: test-pybind-build-macos | |
uses: pytorch/test-infra/.github/workflows/macos_job.yml@release/2.3 | |
strategy: | |
matrix: | |
include: | |
- build-tool: cmake | |
fail-fast: false | |
with: | |
runner: macos-m1-stable | |
python-version: '3.11' | |
submodules: 'true' | |
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} | |
timeout: 180 | |
script: | | |
WORKSPACE=$(pwd) | |
pushd "${WORKSPACE}/pytorch/executorch" | |
bash .ci/scripts/setup-conda.sh | |
# build module for executorch.extension.pybindings.portable_lib | |
BUILD_TOOL=${{ matrix.build-tool }} | |
EXECUTORCH_BUILD_PYBIND=ON PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/setup-macos.sh "${BUILD_TOOL}" | |
# see if we can import the module successfully | |
${CONDA_RUN} python -c "from executorch.extension.pybindings import portable_lib; print('success!')" | |
popd | |
test-llama-runner-macos: | |
name: test-llama-runner-mac | |
uses: pytorch/test-infra/.github/workflows/macos_job.yml@release/2.3 | |
strategy: | |
matrix: | |
dtype: [fp32] | |
build-tool: [buck2, cmake] | |
mode: [portable, xnnpack] | |
fail-fast: false | |
with: | |
runner: macos-m1-stable | |
python-version: '3.11' | |
submodules: 'true' | |
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} | |
timeout: 900 | |
script: | | |
WORKSPACE=$(pwd) | |
pushd "${WORKSPACE}/pytorch/executorch" | |
bash .ci/scripts/setup-conda.sh | |
DTYPE=${{ matrix.dtype }} | |
BUILD_TOOL=${{ matrix.build-tool }} | |
MODE=${{ matrix.mode }} | |
# Setup executorch | |
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/setup-macos.sh "${BUILD_TOOL}" | |
# Install requirements for export_llama | |
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash examples/models/llama2/install_requirements.sh | |
# Test llama2 | |
PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/test_llama.sh stories110M.pt "${BUILD_TOOL}" "${DTYPE}" "${MODE}" | |
popd |