Update run id #36
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
# Run tests using built conda packages. | |
name: Build Conda CI (no upload) | |
# Run when changes to pip wheel | |
on: | |
push: | |
paths: | |
- ".conda/meta.yaml" | |
- ".conda_mac/meta.yaml" | |
- "setup.py" | |
- "requirements.txt" | |
- "dev_requirements.txt" | |
- "environment_build.yml" | |
- ".github/workflows/build_conda_ci.yml" | |
env: | |
RUN_BUILD_JOB: false | |
RUN_ID: 10712122474 | |
jobs: | |
build: | |
name: >- | |
${{ github.event.inputs.RUN_BUILD_JOB == 'false' | |
&& 'Skip ' | |
|| ''}} | |
Build package from push (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["windows-2022", "ubuntu-22.04"] #, "macos-14"] # TODO(LM): Uncomment | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstrategymatrixinclude | |
include: | |
# Use these variables as defaults | |
- condarc: .conda/condarc.yaml | |
- conda-folder: .conda | |
- pyver: "3.10" | |
- build-prefix: win | |
# TODO(LM): Uncomment to run on all os's | |
- os: "ubuntu-22.04" | |
build-prefix: linux | |
# Use special condarc if macos | |
# - os: "macos-14" | |
# condarc: .conda_mac/condarc.yaml | |
# conda-folder: .conda_mac | |
# build-prefix: osx | |
steps: | |
# Setup | |
- name: Checkout | |
if: env.RUN_BUILD_JOB == 'true' | |
uses: actions/checkout@v4 | |
- name: Setup Miniconda | |
if: env.RUN_BUILD_JOB == 'true' | |
uses: conda-incubator/[email protected] | |
with: | |
miniforge-version: latest | |
condarc-file: ${{ matrix.condarc }} | |
python-version: ${{ matrix.pyver }} | |
environment-file: environment_build.yml | |
activate-environment: sleap_ci | |
conda-solver: "libmamba" | |
- name: Print build environment info | |
if: env.RUN_BUILD_JOB == 'true' | |
shell: bash -l {0} | |
run: | | |
which python | |
conda list | |
pip freeze | |
# Build conda package (not Windows) | |
- name: Build conda package (not Windows) | |
if: runner.os != 'Windows' && env.RUN_BUILD_JOB == 'true' | |
shell: bash -l {0} | |
run: | | |
conda build ${{ matrix.conda-folder }} --output-folder build | |
echo "BUILD_PATH=$(pwd)/build" >> "$GITHUB_ENV" | |
# Build conda package (Windows) | |
- name: Build conda package (Windows) | |
if: matrix.os == 'windows-2022' && env.RUN_BUILD_JOB == 'true' | |
shell: powershell | |
run: | | |
conda build ${{ matrix.conda-folder }} --output-folder build | |
echo "BUILD_PATH=\$(pwd)\build" >> "$env:GITHUB_ENV" | |
# Upload artifact "tests" can use it | |
- name: Upload conda package artifact | |
if: env.RUN_BUILD_JOB == 'true' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sleap-build-${{ matrix.build-prefix }} | |
path: build # Upload entire build directory | |
retention-days: 1 | |
overwrite: true | |
tests: | |
name: Run tests using wheel (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
needs: build # Ensure the build job has completed before starting this job. | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["windows-2022", "ubuntu-22.04"] # , "macos-14"] # TODO(LM): Uncomment | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstrategymatrixinclude | |
include: | |
# Default values | |
- build-prefix: win | |
- build-suffix: 64 | |
- test_args: pytest --durations=-1 tests/ | |
- condarc: .conda/condarc.yaml | |
- pyver: "3.10" | |
- conda-channels: -c conda-forge -c nvidia -c anaconda | |
# TODO(LM): Uncomment to run on all OS's | |
# Ubuntu specific values | |
- os: ubuntu-22.04 | |
build-prefix: linux | |
# Otherwise core dumped in github actions | |
test_args: | | |
sudo apt install xvfb libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 | |
sudo Xvfb :1 -screen 0 1024x768x24 </dev/null & | |
export DISPLAY=":1" | |
pytest tests -k 'not exclude_from_linux_pip_test' | |
# Use special condarc if macos | |
# - os: "macos-14" | |
# build-prefix: osx | |
# build-suffix: arm64 | |
# condarc: .conda_mac/condarc.yaml | |
# conda-channels: -c conda-forge -c anaconda | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.pyver }} | |
- name: Use current run for conda package download | |
if: env.RUN_BUILD_JOB == 'true' | |
run: | | |
echo "RUN_ID=${{ github.run_id }}" >> $GITHUB_ENV | |
# https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- name: Download conda package artifact | |
uses: actions/download-artifact@v4 | |
id: download | |
with: | |
name: sleap-build-${{ matrix.build-prefix }} | |
path: build | |
run-id: ${{ env.RUN_ID }} | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: List items in current directory | |
run: | | |
ls . | |
ls -R build | |
- name: Setup Miniconda | |
uses: conda-incubator/[email protected] # TODO(LM): Upgrade | |
with: | |
miniforge-version: latest | |
condarc-file: ${{ matrix.condarc }} | |
python-version: ${{ matrix.pyver }} | |
conda-solver: "libmamba" | |
# Big step because "conda activate" does not persist across steps | |
- name: Test package | |
shell: bash -l {0} | |
run: | | |
echo "Create conda environment" | |
conda create sleap -y -n sleap_test -c ./build ${{ matrix.conda-channels }} | |
echo "Activate conda environment" | |
conda activate sleap_test | |
echo "Install packages for testing" | |
pip install -r "dev_requirements.txt" | |
echo "List environment info" | |
conda info | |
conda list | |
pip freeze | |
echo "Test environment" | |
${{ matrix.test_args}} |