using new conan2 arguments format #653
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: ecl testing | |
on: [push, pull_request] | |
jobs: | |
build-test-cmake: | |
name: CMake | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ['ubuntu-latest', 'macos-latest'] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
# required for `git describe --tags` to work | |
fetch-depth: 0 | |
- name: Install dependencies | |
run: | | |
python3 -m pip install "conan<2" | |
- name: Build ecl | |
run: | | |
mkdir cmake-build | |
cmake -S . -B cmake-build -DBUILD_TESTS=ON -DRST_DOC=ON | |
cmake --build cmake-build | |
- name: Run tests | |
run: | | |
cd cmake-build | |
export DYLD_LIBRARY_PATH=$PWD/lib | |
ctest --output-on-failure | |
env: | |
ECL_SKIP_SIGNAL: absolutely | |
ERT_SHOW_BACKTRACE: yes please! | |
build-test-wheel: | |
name: Python | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ['ubuntu-latest', 'macos-latest'] | |
python: ['3.8', '3.9', '3.10', '3.11'] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
# required for `git describe --tags` to work | |
fetch-depth: 0 | |
- name: Build Linux Wheel | |
uses: docker://quay.io/pypa/manylinux2014_x86_64 | |
with: | |
entrypoint: /github/workspace/ci/github/build_linux_wheel.sh | |
args: ${{ matrix.python }} | |
if: matrix.os == 'ubuntu-latest' | |
- name: Setup Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Build macOS/Windows Wheel | |
run: pip wheel . --no-deps -w dist | |
if: matrix.os != 'ubuntu-latest' | |
- name: Upload wheel as artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ matrix.os }} Python ${{ matrix.python }} wheel | |
path: dist/* | |
- name: Install ecl | |
run: pip install dist/* | |
- name: Run Python tests | |
run: | | |
# Runs tests on installed distribution from an empty directory | |
python -m pip install pytest | |
# pytest adds every directory up-to and including python/ into sys.path, | |
# meaning that "import ecl" will import python/ecl and not the installed | |
# one. This doesn't work because the libecl.so library only exists in | |
# site-packages, so we copy directories required by the tests out into its | |
# own temporary directory. | |
mkdir test-run; cd test-run | |
mkdir -p {.git,python} | |
ln -s {..,$PWD}/bin | |
ln -s {..,$PWD}/lib | |
ln -s {..,$PWD}/test-data | |
cp -R {..,$PWD}/python/tests | |
# Env vars | |
export ECL_SKIP_SIGNAL=1 | |
export ERT_SHOW_BACKTRACE=1 | |
# Run tests | |
python -m pytest python/tests | |
publish: | |
name: Publish to PyPI | |
runs-on: ubuntu-latest | |
needs: [build-test-wheel] | |
# If this is a tagged release | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
steps: | |
- name: Get wheels | |
uses: actions/download-artifact@v2 | |
with: | |
path: artifacts | |
- name: Move to dist/ | |
run: | | |
mkdir dist | |
find artifacts -name "*.whl" -exec mv '{}' dist/ \; | |
- name: Publish to PyPI | |
uses: pypa/gh-action-pypi-publish@v1.3.1 | |
with: | |
user: statoil-travis | |
password: ${{ secrets.pypi_password }} |