Skip to content

Fix pr-ci pip-test environment installation #441

Fix pr-ci pip-test environment installation

Fix pr-ci pip-test environment installation #441

Workflow file for this run

name: Pull Request CI
on:
pull_request:
branches:
- "main"
paths-ignore:
- README.md
- CHANGELOG.md
- LICENSE
- CITATION
- AUTHORS
- docs/**
- .readthedocs.yml
- .pre-commit-config.yaml
- mkdocs.yml
defaults:
run:
shell: bash -l {0}
concurrency:
# Use github.run_id on main branch
# Use github.event.pull_request.number on pull requests, so it's unique per pull request
# Use github.ref on other branches, so it's unique per branch
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/main' && github.run_id || github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
test:
if: github.event.pull_request.draft == false
strategy:
matrix:
os: [ubuntu-latest]
py3version: ["10", "11", "12"]
include:
- os: windows-latest
py3version: "12"
- os: macos-latest
py3version: "12"
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: mamba-org/setup-micromamba@v1
with:
micromamba-version: latest
environment-name: ${{ github.event.repository.name }}-${{ matrix.os }}-3${{ matrix.py3version }}-${{ hashFiles('requirements/dev.txt') }}
environment-file: requirements/base.txt
create-args: >-
-f requirements/dev.txt
curl
python=3.${{ matrix.py3version }}
gurobi::gurobi
post-cleanup: all
cache-environment: true
- name: Install package
run: pip install --no-dependencies -e .
- name: install CBC (Windows)
if: matrix.os == 'windows-latest'
run: |
curl -L https://github.com/coin-or/Cbc/releases/download/releases%2F2.10.10/Cbc-releases.2.10.10-w64-msvc17-md.zip -o cbc.zip
unzip cbc.zip -d ${HOME}/cbc
echo "${HOME}/cbc/bin" >> $GITHUB_PATH
- name: install CBC (Unix)
if: matrix.os != 'windows-latest'
run: micromamba install coin-or-cbc
- name: Install jupyter kernel
run: python -m ipykernel install --user --name calliope
- name: run tests with coverage
if: matrix.os == 'ubuntu-latest' && matrix.py3version == '12'
run: pytest --cov
- name: run tests without coverage
if: matrix.os != 'ubuntu-latest' || matrix.py3version != '12'
run: pytest
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
if: matrix.os == 'ubuntu-latest' && matrix.py3version == '12'
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
directory: "./reports/coverage/"
verbose: true
pre-release-version:
runs-on: ubuntu-latest
if: startsWith(github.event.pull_request.title, 'Release v')
outputs:
version: ${{ steps.get-version.outputs.version }}
steps:
- id: get-version
run: |
fullname="${{github.event.pull_request.title}}"
echo "version=${fullname#"Release "}" >> $GITHUB_OUTPUT
pip-test:
runs-on: ubuntu-latest
if: startsWith(github.event.pull_request.title, 'Release v')
steps:
- uses: actions/checkout@v4
- uses: mamba-org/setup-micromamba@v1
with:
micromamba-version: latest
environment-file: .github/workflows/pr-ci-pipbuild-environment.yml
post-cleanup: all
cache-environment: true
- name: Build package
run: python -m build
- name: Test package install
run: |
pip install dist/calliope-*.tar.gz
calliope --help
pre-release:
needs: [test, pre-release-version, pip-test]
if: needs.pip-test.result == 'success' && needs.test.result == 'success' && startsWith(github.event.pull_request.title, 'Release v')
uses: arup-group/actions-city-modelling-lab/.github/workflows/pip-build.yml@main
secrets:
TEST_PYPI_API_TOKEN: ${{ secrets.TEST_PYPI_API_TOKEN }}
with:
package_name: calliope
version: ${{needs.pre-release-version.outputs.version}}