Skip to content

Update continuous integration environment #1

Update continuous integration environment

Update continuous integration environment #1

Workflow file for this run

name: Pipeline
on:
push:
branches: [ main ]
pull_request:
jobs:
black:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: psf/black@stable
with:
options: "--check --diff"
src: ./${{ github.event.repository.name }}
black_fix: # in most cases pre-commit is faster
needs: [black]
if: failure()
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.DEPENDABOT_WORKFLOW_TOKEN }}
ref: ${{ github.event.pull_request.head.ref }} # Check out the head of the actual branch, not the PR
fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
- name: format black
uses: psf/black@stable
with:
options: ""
src: "./${{ github.event.repository.name }}"
- name: commit
run: |
git config --local user.email "[email protected]"
git config --local user.name "pyiron-runner"
git commit -m "Format black" -a
- name: push
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.DEPENDABOT_WORKFLOW_TOKEN }}
branch: ${{ github.event.pull_request.head.ref }}
benchmark:
needs: [black]
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
include:
- operating-system: macos-latest
python-version: '3.12'
- operating-system: windows-latest
python-version: '3.12'
- operating-system: ubuntu-latest
python-version: '3.12'
steps:
- uses: actions/checkout@v4
- name: Conda config
shell: bash -l {0}
run: echo -e "channels:\n - conda-forge\n" > .condarc
- name: Setup Mambaforge
uses: conda-incubator/setup-miniconda@v3
with:
python-version: ${{ matrix.python-version }}
miniforge-version: latest
condarc-file: .condarc
environment-file: .ci_support/environment.yml
- name: Tests
shell: bash -l {0}
timeout-minutes: 30
run: |
python .ci_support/pyironconfig.py
bash .ci_support/pip_install.sh
python -m unittest discover tests/benchmarks
minimal:
needs: [black]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Conda config
run: echo -e "channels:\n - conda-forge\n" > .condarc
- name: Setup Mambaforge
uses: conda-incubator/setup-miniconda@v3
with:
python-version: '3.12'
miniforge-version: latest
condarc-file: .condarc
environment-file: .ci_support/environment-mini.yml
- name: Test
shell: bash -l {0}
timeout-minutes: 10
run: |
python .ci_support/pyironconfig.py
bash .ci_support/pip_install.sh
python -m unittest discover tests/unit
notebooks:
needs: [black]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Merge Notebook environment
run: |
cp .ci_support/environment.yml environment.yml
tail --lines=+4 .ci_support/environment-notebooks.yml >> environment.yml
echo -e "channels:\n - conda-forge\n" > .condarc
- uses: conda-incubator/setup-miniconda@v3
with:
python-version: "3.12"
miniforge-version: latest
condarc-file: .condarc
environment-file: environment.yml
- name: Test
shell: bash -l {0}
run: |
bash .ci_support/pip_install.sh
./.ci_support/build_notebooks.sh
pip_check:
needs: [black]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Conda config
run: echo -e "channels:\n - conda-forge\n" > .condarc
- name: Setup Mambaforge
uses: conda-incubator/setup-miniconda@v3
with:
python-version: '3.12'
miniforge-version: latest
condarc-file: .condarc
environment-file: .ci_support/environment.yml
- name: Pip check
shell: bash -l {0}
run: |
bash .ci_support/pip_install.sh
pip check
unittest_matrix:
needs: [black]
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
include:
- operating-system: macos-latest
python-version: '3.12'
label: osx-64-py-3-12
- operating-system: windows-latest
python-version: '3.12'
label: win-64-py-3-12
- operating-system: ubuntu-latest
python-version: '3.12'
label: linux-64-py-3-12
- operating-system: ubuntu-latest
python-version: '3.11'
label: linux-64-py-3-11
steps:
- uses: actions/checkout@v4
- name: Conda config
shell: bash -l {0}
run: echo -e "channels:\n - conda-forge\n" > .condarc
- name: Setup Mambaforge
uses: conda-incubator/setup-miniconda@v3
with:
python-version: ${{ matrix.python-version }}
miniforge-version: latest
condarc-file: .condarc
environment-file: .ci_support/environment.yml
- name: Test
shell: bash -l {0}
timeout-minutes: 10
run: |
python .ci_support/pyironconfig.py
bash .ci_support/pip_install.sh
coverage run --omit="pyiron_base/_version.py,tests/*" -m unittest discover tests/unit
coverage xml
- name: Coveralls
if: matrix.label == 'linux-64-py-3-11'
uses: coverallsapp/github-action@v2
unittest_old:
needs: [black]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Conda config
run: echo -e "channels:\n - conda-forge\n" > .condarc
- name: Setup Mambaforge
uses: conda-incubator/setup-miniconda@v3
with:
python-version: '3.10'
miniforge-version: latest
condarc-file: .condarc
environment-file: .ci_support/environment-old.yml
- name: Test
shell: bash -l {0}
timeout-minutes: 30
run: |
bash .ci_support/pip_install.sh
python -m unittest discover tests/unit
unittest_adis:
needs: [black]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Merge Notebook environment
run: |
cp .ci_support/environment.yml environment.yml
tail --lines=+4 tests/usecases/ADIS/environment.yml >> environment.yml
echo -e "channels:\n - conda-forge\n" > .condarc
- uses: conda-incubator/setup-miniconda@v3
with:
python-version: "3.12"
miniforge-version: latest
condarc-file: .condarc
environment-file: environment.yml
- name: Tests
shell: bash -l {0}
run: |
bash .ci_support/pip_install.sh
cd tests/usecases/ADIS
export ESPRESSO_PSEUDO=$(pwd)/espresso/pseudo
papermill notebook.ipynb notebook-out.ipynb -k "python3"
unittest_nfdi4ing:
needs: [black]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Merge Notebook environment
run: |
cp .ci_support/environment.yml environment.yml
tail --lines=+4 .ci_support/environment-notebooks.yml >> environment.yml
echo -e "channels:\n - conda-forge\n" > .condarc
- name: Setup Mambaforge
uses: conda-incubator/setup-miniconda@v3
with:
python-version: "3.12"
miniforge-version: latest
condarc-file: .condarc
environment-file: environment.yml
- name: Test
shell: bash -l {0}
timeout-minutes: 60
run: |
bash .ci_support/pip_install.sh
sudo apt-get install -y $(cat tests/usecases/NFDI4ING/apt.txt)
cd tests/usecases/NFDI4ING
papermill notebook.ipynb notebook.ipynb -k "python3"
autobot:
needs: [unittest_nfdi4ing, unittest_adis, unittest_old, unittest_matrix, pip_check, notebooks, minimal, benchmark]
permissions:
contents: write
pull-requests: write
runs-on: ubuntu-latest
if: (github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'pre-commit-ci[bot]')
steps:
- name: Enable auto-merge for bot PRs
run: gh pr merge --auto --squash "$PR_URL"
env:
PR_URL: ${{github.event.pull_request.html_url}}
GH_TOKEN: ${{secrets.GITHUB_TOKEN}}