From 55b2aa9630fe48e5919ed4996370c57fc7f01405 Mon Sep 17 00:00:00 2001 From: zacharyburnett Date: Thu, 1 Feb 2024 11:58:45 -0500 Subject: [PATCH 1/4] upload frozen requirements as artifact and also to release (if releasing) --- .github/workflows/test.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 538586dda..9af968f5f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -38,3 +38,14 @@ jobs: - run: pip install .[test] - run: pytest exoctk/tests/ + + - run: pip freeze > requirements-py${{ matrix.python-version }}-${{ matrix.os }}.txt + + - uses: actions/upload-artifact@v3 + with: + path: requirements-py${{ matrix.python-version }}-${{ matrix.os }}.txt + + - if: (github.event_name == 'release' && github.event.action == 'published') + uses: svenstaro/upload-release-action@v2 + with: + file: requirements-py${{ matrix.python-version }}-${{ matrix.os }}.txt From 589c7e981c058782238eded99c001a094edcf298 Mon Sep 17 00:00:00 2001 From: zacharyburnett Date: Thu, 1 Feb 2024 11:59:02 -0500 Subject: [PATCH 2/4] add build workflow that also upload to PyPI if releasing --- .github/workflows/build.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..843d076e8 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,20 @@ +name: build + +on: + release: + types: + - released + pull_request: + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: false + +jobs: + build: + uses: OpenAstronomy/github-actions-workflows/.github/workflows/publish_pure_python.yml@v1 + with: + upload_to_pypi: ${{ (github.event_name == 'release') && (github.event.action == 'released') }} + secrets: + pypi_token: ${{ secrets.PYPI_TOKEN }} From baed0ea77eee8aae186992c54dad210da591c91f Mon Sep 17 00:00:00 2001 From: zacharyburnett Date: Thu, 1 Feb 2024 12:07:00 -0500 Subject: [PATCH 3/4] run coverage and parallel tests --- .github/workflows/test.yml | 42 ++++++++++++++++++++------------------ .gitignore | 1 + pyproject.toml | 1 + 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9af968f5f..ff7bfa652 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,50 +1,52 @@ name: test -on: [pull_request] +on: + pull_request: + release: + types: + - created concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: - test: - - name: Python ${{ matrix.python-version }} (${{ matrix.os }}) - runs-on: ${{ matrix.os }} strategy: - max-parallel: 5 matrix: - os: [ubuntu-latest, macos-latest] - python-version: ['3.10', '3.11', '3.12'] + runs-on: + - ubuntu-latest + - macos-latest + python-version: + - '3.10' + - '3.11' + - '3.12' fail-fast: false - + runs-on: ${{ matrix.runs-on }} + name: Python ${{ matrix.python-version }} (${{ matrix.runs-on }}) steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: pip cache-dependency-path: pyproject.toml - - name: set useful environment variables run: | echo PYTHONVERSION=${{ matrix.python-version }} >> $GITHUB_ENV echo EXOCTK_DATA=$RUNNER_WORKSPACE/exoctk/exoctk/data/ >> $GITHUB_ENV - - - run: pip freeze - - - run: pip install .[test] - - - run: pytest exoctk/tests/ - + - run: pip install . - run: pip freeze > requirements-py${{ matrix.python-version }}-${{ matrix.os }}.txt - + - run: pip install .[test] + - run: pytest exoctk/tests/ --cov ./ --cov-report term-missing --cov xml -n auto + - uses: codecov/codecov-action@v4 + with: + files: ./coverage.xml + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - uses: actions/upload-artifact@v3 with: path: requirements-py${{ matrix.python-version }}-${{ matrix.os }}.txt - - if: (github.event_name == 'release' && github.event.action == 'published') uses: svenstaro/upload-release-action@v2 with: diff --git a/.gitignore b/.gitignore index a82142ba3..dd49a2235 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ exoctk/__pycache__ # Other generated files */_version.py */cython_version.py +*/_version.py htmlcov .coverage MANIFEST diff --git a/pyproject.toml b/pyproject.toml index 901377677..1e119fa48 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,6 +70,7 @@ dynamic = ["version"] test = [ "pytest", "pytest-cov", + "pytest-xdist", ] docs = [ "sphinx", From c2d34de824245a00c67a4657644e7b40fd44247f Mon Sep 17 00:00:00 2001 From: zacharyburnett Date: Thu, 3 Jul 2025 13:49:31 -0400 Subject: [PATCH 4/4] update action versions --- .github/workflows/build.yml | 2 +- .github/workflows/test.yml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 843d076e8..70b336431 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ concurrency: jobs: build: - uses: OpenAstronomy/github-actions-workflows/.github/workflows/publish_pure_python.yml@v1 + uses: OpenAstronomy/github-actions-workflows/.github/workflows/publish_pure_python.yml@86823142467dd2afcd1bbac57d3a664cf468eb3b # v2.1.0 with: upload_to_pypi: ${{ (github.event_name == 'release') && (github.event.action == 'released') }} secrets: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ff7bfa652..c76125018 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,8 +25,8 @@ jobs: runs-on: ${{ matrix.runs-on }} name: Python ${{ matrix.python-version }} (${{ matrix.runs-on }}) steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: ${{ matrix.python-version }} cache: pip @@ -39,12 +39,12 @@ jobs: - run: pip freeze > requirements-py${{ matrix.python-version }}-${{ matrix.os }}.txt - run: pip install .[test] - run: pytest exoctk/tests/ --cov ./ --cov-report term-missing --cov xml -n auto - - uses: codecov/codecov-action@v4 + - uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3 with: files: ./coverage.xml env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: path: requirements-py${{ matrix.python-version }}-${{ matrix.os }}.txt - if: (github.event_name == 'release' && github.event.action == 'published')