Set up conda package #8
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: CI | |
on: | |
pull_request: | |
branches: [main] | |
push: | |
branches: [main] | |
workflow_dispatch: | |
jobs: | |
changes: | |
runs-on: ubuntu-latest | |
# Required permissions | |
permissions: | |
pull-requests: read | |
# Set job outputs to values from filter step | |
outputs: | |
files: ${{ steps.filter.outputs.files }} | |
steps: | |
- name: Checkout code | |
uses: actions/[email protected] | |
- name: Filter files | |
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 #v3.0.2 | |
id: filter | |
with: | |
filters: | | |
files: | |
- 'setup.py' | |
- 'pyproject.toml' | |
- '.conda/**' | |
- 'src/**' | |
verify-conda-build: | |
name: Conda Build | |
runs-on: ubuntu-latest | |
needs: changes | |
# Only run if there are changes in the build/src files | |
if: ${{ needs.changes.outputs.files == 'true' }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup conda build environment | |
uses: conda-incubator/setup-miniconda@a4260408e20b96e80095f42ff7f1a15b27dd94ca # v3.0.4 | |
with: | |
miniconda-version: "latest" | |
python-version: ${{ vars.PY_VERSION }} | |
environment-file: .conda/env_build.yml | |
auto-activate-base: false | |
auto-update-conda: false | |
show-channel-urls: true | |
- name: Verify conda recipe | |
shell: bash -el {0} | |
run: conda-verify .conda --ignore C2105,C2122 | |
# C2105: invalid package version for 'era5grib_parallel' | |
# (there is no git tag in this test so versioneer outputs a | |
# version that conda-verify recognizes as 'invalid') | |
# C2122: invalid license family | |
# Reference --> https://github.com/conda/conda-verify?tab=readme-ov-file#checks | |
- name: Run conda build | |
shell: bash -el {0} | |
run: conda build . --no-anaconda-upload --output-folder=./build -c conda-forge -c accessnri | |
- name: Verify conda package | |
shell: bash -el {0} | |
run: conda-verify ./build/noarch/*.tar.bz2 --ignore C1105,C1115,C1141 | |
# C1105: invalid version number for 'era5grib_parallel' | |
# (there is no git tag in this test so versioneer outputs a | |
# version that conda-verify recognizes as 'invalid') | |
# C1115: Found invalid license | |
# C1141: Found python file without a corresponding pyc file | |
# Reference --> https://github.com/conda/conda-verify?tab=readme-ov-file#checks | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: era5grib-parallel_build | |
if-no-files-found: error | |
path: ./build/noarch/*.tar.bz2 | |
# Dispatch the ACCESS-NRI/access-ram-condaenv repo to deploy the development conda environment | |
dispatch-access-ram-condaenv: | |
name: Dispatch the ACCESS-NRI/access-ram-condaenv repo | |
runs-on: ubuntu-latest | |
if : ${{ github.event_name == 'pull_request' }} | |
needs: verify-conda-build | |
steps: | |
- name: Dispatch repo | |
uses: peter-evans/repository-dispatch@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # v3.0.0 | |
with: | |
token: ${{ secrets.REPO_ACCESS_TOKEN }} | |
repository: ACCESS-NRI/access-ram-condaenv | |
event-type: development | |
client-payload: | | |
'{ | |
"dependency": "$(yq -oy '.project.name' pyproject.toml)", | |
"workflow_id": "${{ github.run_id }}", | |
"token": "${{secrets.REPO_ACCESS_TOKEN}}" | |
}' |