Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
147 changes: 8 additions & 139 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,158 +5,27 @@ on:
branches:
- 'main'
- 'develop'
tags-ignore:
- '**'

# Trigger the workflow on pull request
pull_request: ~

# Trigger the workflow manually
workflow_dispatch: ~

# Trigger after public PR approved for CI
pull_request_target:
types: [labeled]
release:
types: [created]

jobs:

# Run CI including downstream packages on self-hosted runners
downstream-ci:
name: downstream-ci
if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
# FIXME: revert to main when ready
uses: ecmwf-actions/downstream-ci/.github/workflows/downstream-ci.yml@add-conflator
uses: ecmwf/downstream-ci/.github/workflows/downstream-ci.yml@main
with:
conflator: ecmwf/conflator@${{ github.event.pull_request.head.sha || github.sha }}
codecov_upload: true
python_qa: true
secrets: inherit

# qa:
# name: qa
# runs-on: ubuntu-20.04
# steps:
# - name: Checkout Repository
# uses: actions/checkout@v3
# with:
# repository: ${{ inputs.repository }}
# ref: ${{ inputs.ref }}

# - name: Setup Python
# uses: actions/setup-python@v4
# with:
# python-version: ${{ inputs.python_version }}

# - name: Install Python Dependencies
# run: |
# python -m pip install --upgrade pip
# python -m pip install black==23.1.0
# python -m pip install flake8 isort
# - name: Check isort
# run: isort --check .

# - name: Check black
# run: black --check .

# - name: Check flake8
# run: flake8 .
# setup:
# name: setup
# runs-on: ubuntu-20.04
# outputs:
# matrix: ${{ steps.set-matrix.outputs.matrix }}
# inputs: ${{ steps.prepare-inputs.outputs.inputs }}
# inputs-for-ubuntu: ${{ steps.prepare-inputs.outputs.inputs-for-ubuntu }}
# steps:
# - name: Set Matrix
# id: set-matrix
# shell: bash -eux {0}
# run: |
# MATRIX=$(cat << 'EOS'
# name:
# - gnu-11@ubuntu-22.04
# - clang-14@ubuntu-22.04
# include:
# - name: gnu-11@ubuntu-22.04
# os: ubuntu-22.04
# compiler: gnu-11
# compiler_cc: gcc-11
# compiler_cxx: g++-11
# compiler_fc: gfortran-11
# - name: clang-14@ubuntu-22.04
# os: ubuntu-22.04
# compiler: clang-14
# compiler_cc: clang-14
# compiler_cxx: clang++-14
# compiler_fc: gfortran-11
# # Xcode compiler requires empty environment variables, so we pass null (~) here
# EOS
# )
# SKIP_MATRIX_JOBS=$(cat << 'EOS'
# ${{ inputs.skip_matrix_jobs }}
# EOS
# )
# SELECT_NAME_COND="1 != 1"
# SELECT_INCLUDE_COND="1 != 1"
# for skip_job in $SKIP_MATRIX_JOBS; do SELECT_NAME_COND="$SELECT_NAME_COND or . == \"$skip_job\""; SELECT_INCLUDE_COND="$SELECT_INCLUDE_COND or .name == \"$skip_job\""; done
# echo matrix=$(echo "$MATRIX" | yq eval "del(.name[] | select($SELECT_NAME_COND)) | del(.include[] | select($SELECT_INCLUDE_COND))" --output-format json --indent 0 -) >> $GITHUB_OUTPUT
# - name: Prepare build-package Inputs
# id: prepare-inputs
# shell: bash -eux {0}
# run: |
# echo inputs=$(echo "${{ inputs.build_package_inputs || '{}' }}" | yq eval '.' --output-format json --indent 0 -) >> $GITHUB_OUTPUT
# echo inputs-for-ubuntu=$(echo "${{ inputs.build_package_inputs || '{}' }}" | yq eval '. * {"os":"ubuntu-20.04","compiler":"gnu-10","compiler_cc":"gcc-10","compiler_cxx":"g++-10","compiler_fc":"gfortran-10"}' --output-format json --indent 0 -) >> $GITHUB_OUTPUT
test:
name: test
needs:
# - qa
# - setup
- downstream-ci
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.setup.outputs.matrix) }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ inputs.python_version }}

- name: Install Python Dependencies
run: |
python -m pip install --upgrade pip
pip install --upgrade pip setuptools wheel
python -m pip install pytest pytest-cov
python -m pip install -r requirements.txt
python -m pip install -r ./tests/requirements_test.txt

- name: Run Tests with Repository Code
env:
LD_LIBRARY_PATH: ${{ steps.install-dependencies.outputs.lib_path }}
shell: bash -eux {0}
run: |
DYLD_LIBRARY_PATH=${{ env.LD_LIBRARY_PATH }} python -m pytest tests --cov=./ --cov-report=xml
python -m coverage report

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: coverage.xml
deploy:
needs: test
if: ${{ github.event_name == 'release' }}
name: Upload to Pypi
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
- name: Build and publish
env:
PYPI_USERNAME: "__token__"
PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
run: |
poetry build
poetry publish --username=$PYPI_USERNAME --password=$PYPI_PASSWORD
2 changes: 1 addition & 1 deletion .github/workflows/label-public-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ on:

jobs:
label:
uses: ecmwf-actions/reusable-workflows/.github/workflows/label-pr.yml@v2
uses: ecmwf/reusable-workflows/.github/workflows/label-pr.yml@v2
25 changes: 0 additions & 25 deletions .github/workflows/tox.yml

This file was deleted.

3 changes: 1 addition & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "conflator"
version = "0.1.7"
version = "0.1.8"
description = "Load small app configurations from environment variables, command line arguments and config files, according to a pydantic model."
authors = ["James Hawkes <James.Hawkes@ecmwf.int>"]
readme = "README.md"
Expand All @@ -11,7 +11,6 @@ repository = "https://github.com/ecmwf/conflator/"
python = ">3.9"
pydantic = ">2.0"
rich-argparse = ">1.0"
pytest = ">8.0"
pyyaml = ">6.0"


Expand Down
Loading