Skip to content

Commit

Permalink
update all workflows to use caches
Browse files Browse the repository at this point in the history
  • Loading branch information
zain-sohail committed Oct 16, 2023
1 parent d706a9a commit cf84765
Show file tree
Hide file tree
Showing 4 changed files with 150 additions and 0 deletions.
33 changes: 33 additions & 0 deletions .github/workflows/linting.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: linting

# Triggers the workflow on push for all branches
on: [push]

jobs:
lint:
runs-on: ubuntu-latest
steps:
# Check out repo and set up Python
- uses: actions/checkout@v3
with:
lfs: true

# Use cached python and dependencies, install poetry
- name: "Setup Python, Poetry and Dependencies"
uses: packetcoders/action-setup-cache-python-poetry@main
with:
python-version: 3.8
poetry-version: 1.2.2

# Linting steps, excute all linters even if one fails
- name: pycodestyle
run:
poetry run pycodestyle --ignore=E203,E501,W503 sed tests
- name: pylint
if: ${{ always() }}
run:
poetry run pylint --good-names=i,j,k,ex,x,y,t,k,v,ax,df,ec,mc,dc,ct --disable=fixme,too-many-branches,too-many-locals,too-many-statements,too-many-arguments,too-many-lines,too-many-public-methods,too-many-instance-attributes,too-few-public-methods sed tests
- name: mypy
if: ${{ always() }}
run:
poetry run mypy --ignore-missing-imports --follow-imports=silent --no-strict-optional sed tests
30 changes: 30 additions & 0 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: pytest

on:
pull_request

jobs:
pytest:
runs-on: ubuntu-latest
steps:
# Check out repo and set up Python
- name: Check out the repository
uses: actions/checkout@v4
with:
lfs: true

# Use cached python and dependencies, install poetry
- name: "Setup Python, Poetry and Dependencies"
uses: packetcoders/action-setup-cache-python-poetry@main
with:
python-version: 3.8
poetry-version: 1.2.2

# Run pytest with coverage report and upload results to coveralls
- name: Run tests on python 3.8
run: |
poetry run pytest --cov=sed -n auto tests/
- name: Coveralls
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
51 changes: 51 additions & 0 deletions .github/workflows/testing_multiversion.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: pytest multiversion

on:
push:
branches: [ main ]

jobs:
pytest:
# Using matrix strategy
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10"]
runs-on: ubuntu-latest
steps:
# Check out repo and set up Python
- name: Check out the repository
uses: actions/checkout@v4
with:
lfs: true

- name: "Setup Python, Poetry and Dependencies"
uses: packetcoders/action-setup-cache-python-poetry@main
with:
python-version: ${{matrix.python-version}}
poetry-version: 1.2.2

# Use cached python and dependencies, install poetry
- name: Run tests on python ${{matrix.python-version}}
run: |
poetry run pytest --cov=sed -n auto tests/
# run this job after each pytest job is finished
- name: Coveralls Parallel
uses: coverallsapp/github-action@v2
with:
flag-name: run-${{ join(matrix.*, '-') }}
parallel: true

# run this job after all the pytest jobs are finished
# coveralls will combine the coverage reports and upload to coveralls.io
finish:
needs: pytest
if: ${{ always() }}
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true
carryforward: "run-3.8,run-3.9,run-3.10"
36 changes: 36 additions & 0 deletions .github/workflows/update_requirements.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: update docs/requirements.txt for readthedocs

on:
# Triggers the workflow on push but only for the main branch
# and only for changes to the poetry.lock file
push:
branches: [ main ]
paths: [poetry.lock]

jobs:
pytest:
runs-on: ubuntu-latest
steps:
# Check out repo and set up Python
- name: Check out the repository
uses: actions/checkout@v4
with:
lfs: true

# Use cached python and dependencies, install poetry
- name: "Setup Python, Poetry and Dependencies"
uses: packetcoders/action-setup-cache-python-poetry@main
with:
python-version: 3.8
poetry-version: 1.2.2

# Generates and commits a requirements.txt used by readthedocs
- name: Export requirements.txt
run: poetry export --without-hashes --format=requirements.txt -o docs/requirements.txt -E docs -E notebook

- name: Commit changes
uses: EndBug/add-and-commit@v9
with:
default_author: github_actions
message: 'Updating requirements for docs'
add: 'docs/requirements.txt'

0 comments on commit cf84765

Please sign in to comment.