Skip to content

Commit

Permalink
Upgrade GitHub workflows (#1397)
Browse files Browse the repository at this point in the history
* chore: upgrade GitHub workflows

* chore: accept jinja2 vulnerability

* docs: update readme badge

* fix numpy 2 deprecation

---------

Co-authored-by: Christian Diener <[email protected]>
  • Loading branch information
Midnighter and cdiener authored Aug 6, 2024
1 parent fd1faa6 commit 5bc58c9
Show file tree
Hide file tree
Showing 9 changed files with 149 additions and 163 deletions.
11 changes: 11 additions & 0 deletions .github/workflows/cron.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Cron Test

on:
schedule:
# Run every Tuesday at 10:30.
- cron: '30 10 * * 2'

jobs:
prerequisites:
uses: ./.github/workflows/test.yml

46 changes: 0 additions & 46 deletions .github/workflows/lint.yml

This file was deleted.

80 changes: 3 additions & 77 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,89 +1,15 @@
name: CI-CD
name: CI

on:
push:
branches:
- stable
- devel
tags:
- "[0-9]+.[0-9]+.[0-9]+"
- "[0-9]+.[0-9]+.[0-9]+a[0-9]+"
pull_request:
branches:
- stable
- devel

jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.8", "3.11"]
timeout-minutes: 360

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
python -m pip install tox tox-gh-actions
- name: Test with tox
run: tox -- --benchmark-skip
timeout-minutes: 60
- name: Report coverage
shell: bash
run: bash <(curl -s https://codecov.io/bash)

release:
needs: test
if: github.ref_type == 'tag'
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: ["3.11"]
permissions:
contents: write

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
python -m pip install build twine
- name: Build package
run: python -m build

- name: Publish to PyPI
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: twine upload --skip-existing --non-interactive dist/*

- name: GH release
uses: softprops/action-gh-release@v1
with:
body_path: "release-notes/${{ github.ref_name }}.md"
draft: false
prerelease: false

- name: Publish to website
run: ./scripts/deploy_website.sh
shell: bash
env:
TAG: ${{ github.ref_name }}
WORKSPACE: ${{ github.workspace }}
WEBSITE_DEPLOY_TOKEN: ${{ secrets.WEBSITE_DEPLOY_TOKEN }}
prerequisites:
uses: ./.github/workflows/test.yml
60 changes: 60 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: CD

on:
push:
tags:
- "[0-9]+.[0-9]+.[0-9]+"
- "[0-9]+.[0-9]+.[0-9]+(a|b|rc|post|dev)[0-9]+"

jobs:
prerequisites:
uses: ./.github/workflows/test.yml

release:
needs: [prerequisites]
strategy:
matrix:
os: [ubuntu-latest]
python-version: ["3.11"]
runs-on: ${{ matrix.os }}
permissions:
# Write permissions are needed to create OIDC tokens.
id-token: write
# Write permissions are needed to make GitHub releases.
contents: write

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
python -m pip install build
- name: Build package
run: python -m build

# We rely on a trusted publisher configuration being present on PyPI,
# see https://docs.pypi.org/trusted-publishers/.
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1

- name: GH release
uses: softprops/action-gh-release@v2
with:
body_path: "release-notes/${{ github.ref_name }}.md"
draft: false
prerelease: false

- name: Publish to website
run: ./scripts/deploy_website.sh
shell: bash
env:
TAG: ${{ github.ref_name }}
WORKSPACE: ${{ github.workspace }}
WEBSITE_DEPLOY_TOKEN: ${{ secrets.WEBSITE_DEPLOY_TOKEN }}
36 changes: 0 additions & 36 deletions .github/workflows/safety.yml

This file was deleted.

71 changes: 71 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Test Suite

on:
workflow_dispatch: {}
workflow_call: {}

jobs:
lint:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ["3.11"]
runs-on: ${{ matrix.os }}
timeout-minutes: 60

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
python -m pip install tox tox-gh-actions
- name: isort
run: tox -e isort

- name: black
run: tox -e black

- name: flake8
run: tox -e flake8

test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.8", "3.11"]
timeout-minutes: 360

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
python -m pip install tox tox-gh-actions
- name: safety
run: tox -e safety

- name: Test with tox
run: tox -- --benchmark-skip
timeout-minutes: 60

- name: Report coverage
shell: bash
run: bash <(curl -s https://codecov.io/bash)

4 changes: 2 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ COBRApy - Constraint-Based Reconstruction and Analysis in Python
:target: https://github.com/opencobra/cobrapy/blob/devel/.github/CODE_OF_CONDUCT.md
:alt: Code of Conduct

.. image:: https://github.com/opencobra/cobrapy/workflows/CI-CD/badge.svg
:target: https://github.com/opencobra/cobrapy/workflows/CI-CD
.. image:: https://github.com/opencobra/cobrapy/actions/workflows/main.yml/badge.svg
:target: https://github.com/opencobra/cobrapy/actions/workflows/main.yml
:alt: GitHub Actions CI/CD Status

.. image:: https://codecov.io/gh/opencobra/cobrapy/branch/master/graph/badge.svg
Expand Down
2 changes: 1 addition & 1 deletion src/cobra/io/mat.py
Original file line number Diff line number Diff line change
Expand Up @@ -875,7 +875,7 @@ def from_mat_struct(
# RECON3.0 mat has an array within an array for subsystems.
# If we find a model that has multiple subsytems per reaction, this should be
# modified
if np.sctype2char(m["subSystems"][0, 0][0][0]) == "O" and isinstance(
if m["subSystems"][0, 0][0][0].dtype.char == "O" and isinstance(
m["subSystems"][0, 0][0][0][0], np.ndarray
):
rxn_subsystems = [
Expand Down
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ commands=
deps=
safety
commands=
safety check --full-report
safety check --full-report -i 70612

[testenv:install]
skip_install = True
Expand Down

0 comments on commit 5bc58c9

Please sign in to comment.