Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade GitHub workflows #1397

Merged
merged 4 commits into from
Aug 6, 2024
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
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
Loading