Skip to content

flexmock doesn't like pytest 8.1 yet #390

flexmock doesn't like pytest 8.1 yet

flexmock doesn't like pytest 8.1 yet #390

Workflow file for this run

name: wipac ci/cd
on:
push:
branches:
- '**'
tags-ignore:
- '**'
env:
py_version: '3.10'
jobs:
flake8:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ env.py_version }}
- uses: WIPACrepo/[email protected]
py-setup:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v3
with:
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- uses: WIPACrepo/[email protected]
py-versions:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.versions.outputs.matrix }}
steps:
- uses: actions/checkout@v3
- id: versions
uses: WIPACrepo/[email protected]
pip-install:
needs: [py-versions]
runs-on: ubuntu-latest
strategy:
max-parallel: 4
fail-fast: false
matrix:
version: ${{ fromJSON(needs.py-versions.outputs.matrix) }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.version }}
- run: |
pip install --upgrade pip wheel setuptools
pip install .
py-tests:
runs-on: ubuntu-latest
services:
mongo:
image: mongo:4.0
ports:
- 27017:27017
env:
TEST_DATABASE_URL: "localhost:27017"
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ env.py_version }}
- name: Set up GCC
uses: egor-tensin/setup-gcc@v1
- name: Setup Dependencies
id: dependencies
run: |
pip install --upgrade pip wheel setuptools
pip install .[tests]
- name: Run Tests
run: |
coverage run --source iceprod,bin --parallel-mode --branch -m pytest --tb=short tests
- name: Coverage report
if: always() && steps.dependencies.outcome != 'failure'
run: |
coverage combine
coverage report -m --fail-under=50
docker-build:
name: "Docker Image"
if: ${{ github.ref != 'refs/heads/master' && github.ref != 'refs/heads/main' }}
runs-on: ubuntu-latest
steps:
- name: Checkout Project
uses: actions/checkout@v3
- name: Build Docker Image
uses: docker/build-push-action@v4
with:
context: .
push: false
release:
if: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }}
needs: [flake8, py-setup, pip-install, py-tests]
runs-on: ubuntu-latest
concurrency: release
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- name: Python Semantic Release
uses: relekang/[email protected]
with:
github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
repository_username: __token__
repository_password: ${{ secrets.PYPI_TOKEN }}
docker:
name: "Docker Image"
if: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }}
needs: [flake8, py-setup, pip-install, py-tests]
runs-on: ubuntu-latest
steps:
- name: Checkout Project
uses: actions/checkout@v3
- name: Docker meta
id: docker_meta
uses: docker/metadata-action@v3
with:
images: |
ghcr.io/WIPACRepo/iceprod
tags: |
type=ref,event=branch
type=semver,pattern={{major}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}.{{minor}}.{{patch}}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
if: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }}
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Push Docker Image
uses: docker/build-push-action@v4
with:
context: .
push: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }}
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}