pcds-envs Integration Testing #231
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: pcds-envs Integration Testing | |
on: | |
pull_request: | |
release: | |
types: | |
- published | |
schedule: | |
# Every monday morning >3 hours before start | |
- cron: '45 3 * * 1' | |
env: | |
MPLBACKEND: "agg" | |
QT_QPA_PLATFORM: "offscreen" | |
jobs: | |
# The latest deployed env OR the proposed env in a PR | |
current-env-tests: | |
defaults: | |
run: | |
shell: bash --login -eo pipefail {0} | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: ./.github/actions/conda_setup | |
- name: create environment | |
id: create | |
run: mamba env create -q -n pcds-test -f envs/pcds/env.yaml | |
- uses: ./.github/actions/finalize_and_check_env | |
- uses: ./.github/actions/run_tests | |
with: | |
use-tag: true | |
- uses: ./.github/actions/release_notes | |
if: steps.create.outcome == 'success' | |
# The env from current-env-tests + the latest tags slapped onto it | |
py39-next-incr: | |
defaults: | |
run: | |
shell: bash --login -eo pipefail {0} | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: ./.github/actions/conda_setup | |
- name: create environment | |
id: create | |
run: | | |
cd scripts | |
python update_tags.py pcds | |
./create_incremental_env.sh test pcds origin/master | |
- uses: ./.github/actions/finalize_and_check_env | |
- uses: ./.github/actions/run_tests | |
with: | |
use-tag: true | |
- uses: ./.github/actions/release_notes | |
if: steps.create.outcome == 'success' | |
- name: Environment Export | |
id: export | |
if: steps.create.outcome == 'success' | |
run: | | |
conda activate base | |
python scripts/export_env.py --rel test --base pcds | |
- uses: actions/upload-artifact@v4 | |
if: steps.export.outcome == 'success' | |
with: | |
name: incr_env.yaml | |
path: "envs/pcds/env.yaml" | |
# Start from scratch to get some py39 testing done | |
# This is a fallback alternative to py39-next-incr, which is preferred | |
py39-next-full: | |
defaults: | |
run: | |
shell: bash --login -eo pipefail {0} | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: ./.github/actions/conda_setup | |
- name: create environment | |
id: create | |
run: | | |
cd scripts | |
python update_tags.py pcds | |
./create_base_env.sh test pcds 3.9 | |
- uses: ./.github/actions/finalize_and_check_env | |
- uses: ./.github/actions/run_tests | |
with: | |
use-tag: true | |
- uses: ./.github/actions/release_notes | |
if: steps.create.outcome == 'success' | |
- name: Environment Export | |
id: export | |
if: steps.create.outcome == 'success' | |
run: | | |
conda activate base | |
python scripts/export_env.py --rel test --base pcds | |
- uses: actions/upload-artifact@v4 | |
if: steps.export.outcome == 'success' | |
with: | |
name: py39_env.yaml | |
path: "envs/pcds/env.yaml" | |
# Try to build a python 3.10 env | |
py310-next-full: | |
defaults: | |
run: | |
shell: bash --login -eo pipefail {0} | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: ./.github/actions/conda_setup | |
- name: create environment | |
id: create | |
run: | | |
cd scripts | |
python update_tags.py pcds | |
./create_base_env.sh test pcds 3.10 | |
- uses: ./.github/actions/finalize_and_check_env | |
- uses: ./.github/actions/run_tests | |
with: | |
use-tag: true | |
- uses: ./.github/actions/release_notes | |
if: steps.create.outcome == 'success' | |
- name: Environment Export | |
id: export | |
if: steps.create.outcome == 'success' | |
run: | | |
conda activate base | |
python scripts/export_env.py --rel test --base pcds | |
- uses: actions/upload-artifact@v4 | |
if: steps.export.outcome == 'success' | |
with: | |
name: py310_env.yaml | |
path: "envs/pcds/env.yaml" | |
# Try to build a python 3.11 env | |
py311-next-full: | |
defaults: | |
run: | |
shell: bash --login -eo pipefail {0} | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: ./.github/actions/conda_setup | |
- name: create environment | |
id: create | |
run: | | |
cd scripts | |
python update_tags.py pcds | |
./create_base_env.sh test pcds 3.11 | |
- uses: ./.github/actions/finalize_and_check_env | |
- uses: ./.github/actions/run_tests | |
with: | |
use-tag: true | |
- uses: ./.github/actions/release_notes | |
if: steps.create.outcome == 'success' | |
- name: Environment Export | |
id: export | |
if: steps.create.outcome == 'success' | |
run: | | |
conda activate base | |
python scripts/export_env.py --rel test --base pcds | |
- uses: actions/upload-artifact@v4 | |
if: steps.export.outcome == 'success' | |
with: | |
name: py311_env.yaml | |
path: "envs/pcds/env.yaml" | |
py312-next-full: | |
defaults: | |
run: | |
shell: bash --login -eo pipefail {0} | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: ./.github/actions/conda_setup | |
- name: create environment | |
id: create | |
run: | | |
cd scripts | |
python update_tags.py pcds | |
./create_base_env.sh test pcds 3.12 | |
- uses: ./.github/actions/finalize_and_check_env | |
- uses: ./.github/actions/run_tests | |
with: | |
use-tag: true | |
- uses: ./.github/actions/release_notes | |
if: steps.create.outcome == 'success' | |
- name: Environment Export | |
id: export | |
if: steps.create.outcome == 'success' | |
run: | | |
conda activate base | |
python scripts/export_env.py --rel test --base pcds | |
- uses: actions/upload-artifact@v4 | |
if: steps.export.outcome == 'success' | |
with: | |
name: py312_env.yaml | |
path: "envs/pcds/env.yaml" | |
# Checks which packages are not ready yet for py310 | |
py310-readiness: | |
needs: py310-next-full | |
if: failure() | |
defaults: | |
run: | |
shell: bash --login -eo pipefail {0} | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/conda_setup | |
- name: check packages conda | |
run: | | |
cd scripts | |
./check_py_compat.sh pcds 3.10 | tee ~/compat.log | |
- name: check packages pip | |
if: always() | |
run: | | |
conda create --name test python=3.10 | |
conda activate test | |
cd scripts | |
./check_py_compat_pypi.sh pcds | tee -a ~/compat.log | |
- name: summarize failure | |
if: failure() | |
run: grep "uninstallable package" ~/compat.log >> "$GITHUB_STEP_SUMMARY" | |
# Checks which packages are not ready yet for py311 | |
py311-readiness: | |
needs: py311-next-full | |
if: failure() | |
defaults: | |
run: | |
shell: bash --login -eo pipefail {0} | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/conda_setup | |
- name: check packages conda | |
run: | | |
cd scripts | |
./check_py_compat.sh pcds 3.11 | tee ~/compat.log | |
- name: check packages pip | |
if: always() | |
run: | | |
conda create --name test python=3.11 | |
conda activate test | |
cd scripts | |
./check_py_compat_pypi.sh pcds | tee -a ~/compat.log | |
- name: summarize failure | |
if: failure() | |
run: grep "uninstallable package" ~/compat.log >> "$GITHUB_STEP_SUMMARY" | |
py312-readiness: | |
needs: py312-next-full | |
if: failure() | |
defaults: | |
run: | |
shell: bash --login -eo pipefail {0} | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/conda_setup | |
- name: check packages conda | |
run: | | |
cd scripts | |
./check_py_compat.sh pcds 3.12 | tee ~/compat.log | |
- name: check packages pip | |
if: always() | |
run: | | |
conda create --name test python=3.12 | |
conda activate test | |
cd scripts | |
./check_py_compat_pypi.sh pcds | tee -a ~/compat.log | |
- name: summarize failure | |
if: failure() | |
run: grep "uninstallable package" ~/compat.log >> "$GITHUB_STEP_SUMMARY" |