add macOS to tox tests #47
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: build | |
on: | |
workflow_call: | |
inputs: | |
export: | |
type: boolean | |
required: false | |
default: false | |
outputs: | |
date: | |
value: ${{ jobs.date.outputs.date }} | |
workflow_dispatch: | |
inputs: | |
upload_to_release: | |
description: upload exported files to a release of the current tag | |
required: false | |
type: boolean | |
default: false | |
push: | |
release: | |
types: | |
- published | |
concurrency: | |
group: build-${{ github.ref }} | |
defaults: | |
run: | |
shell: micromamba-shell {0} | |
jobs: | |
date: | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo "date=$(date +%Y-%m-%d)" >> $GITHUB_OUTPUT | |
id: date | |
shell: bash | |
outputs: | |
date: ${{ steps.date.outputs.date }} | |
build: | |
needs: [ date ] | |
strategy: | |
fail-fast: false | |
matrix: | |
runs-on: [ ubuntu-latest, macos-latest ] | |
python-version: [ '3.9', '3.10', '3.11' ] | |
runs-on: ${{ matrix.runs-on }} | |
name: build (Python ${{ matrix.python-version }}, ${{ matrix.runs-on }}) | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-name: stenv-${{ runner.os }}-py${{ matrix.python-version }} | |
environment-file: environment.yaml | |
create-args: >- | |
python=${{ matrix.python-version }} | |
conda | |
cache-downloads: true | |
cache-downloads-key: downloads-${{ needs.date.outputs.date }} | |
cache-environment: true | |
cache-environment-key: environment-${{ needs.date.outputs.date }} | |
init-shell: none | |
generate-run-shell: true | |
- run: conda env export --no-build | grep -v "name:" | grep -v "prefix:" | |
- run: pytest -n auto tests/test_import.py | |
version: | |
runs-on: ubuntu-latest | |
outputs: | |
version: ${{ steps.version.outputs.version }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- uses: mtkennerly/dunamai-action@v1 | |
id: version | |
with: | |
args: --pattern "(?P<base>\d+\.\d+\.\d+)" | |
export: | |
if: github.event_name == 'workflow_dispatch' || github.event_name == 'push' || github.event_name == 'release' || inputs.export == 'true' | |
needs: [ build, version, date ] | |
strategy: | |
fail-fast: false | |
matrix: | |
runs-on: [ ubuntu-latest, macos-latest ] | |
python-version: [ '3.9', '3.10', '3.11' ] | |
runs-on: ${{ matrix.runs-on }} | |
name: export (Python ${{ matrix.python-version }}, ${{ matrix.runs-on }}) | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-name: stenv-${{ runner.os }}-py${{ matrix.python-version }} | |
environment-file: environment.yaml | |
create-args: >- | |
python=${{ matrix.python-version }} | |
conda | |
cache-downloads: true | |
cache-downloads-key: downloads-${{ needs.date.outputs.date }} | |
cache-environment: true | |
cache-environment-key: environment-${{ needs.date.outputs.date }} | |
init-shell: none | |
generate-run-shell: true | |
- run: echo "filename=stenv-${{ runner.os }}-${{ runner.arch }}-py${{ matrix.python-version }}-${{ needs.version.outputs.version }}.yaml" >> $GITHUB_OUTPUT | |
id: output | |
- run: conda env export --no-build | grep -v "name:" | grep -v "prefix:" > ${{ steps.output.outputs.filename }} | |
- run: cat ${{ steps.output.outputs.filename }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ steps.output.outputs.filename }} | |
path: ${{ steps.output.outputs.filename }} | |
- if: (github.event_name == 'release' && github.event.action == 'published') | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
file: ${{ steps.output.outputs.filename }} |