Skip to content

Commit

Permalink
Merge pull request #1 from OpenRailAssociation/workflows
Browse files Browse the repository at this point in the history
Add workflows for tests and releases
  • Loading branch information
mxmehl authored Jul 1, 2024
2 parents 165266d + 787e842 commit 0b2e964
Show file tree
Hide file tree
Showing 3 changed files with 138 additions and 0 deletions.
28 changes: 28 additions & 0 deletions .github/actions/poetrybuild/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# SPDX-FileCopyrightText: 2024 DB Systel GmbH
#
# SPDX-License-Identifier: Apache-2.0

name: "Reusable Poetry build workflow"
inputs:
python:
default: "3.10"
description: "Value for 'python-version'"
required: false
type: string
poetry_args:
default: ""
description: "Additional arguments for the poetry install step'"
required: false
type: string
runs:
using: "composite"
steps:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ inputs.python }}
- name: Install dependencies
run: |
pip install poetry
poetry install --no-interaction ${{ inputs.poetry_args }}
shell: bash
18 changes: 18 additions & 0 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# SPDX-FileCopyrightText: 2024 DB Systel GmbH
#
# SPDX-License-Identifier: Apache-2.0

name: Python package
on:
push:
tags:
- "v*.*.*"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build and publish to PyPI
uses: JRubics/[email protected]
with:
pypi_token: ${{ secrets.PYPI_TOKEN }}
92 changes: 92 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# SPDX-FileCopyrightText: 2024 DB Systel GmbH
#
# SPDX-License-Identifier: Apache-2.0

name: Test suites

on:
push:
branches:
- main
pull_request:

jobs:
# Test using the tool via poetry on different OSes and python versions
test-os-python-matrix:
runs-on: ${{ matrix.os }}
strategy:
max-parallel: 10
# do not abort the whole test job if one combination in the matrix fails
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12"]
os: [ubuntu-22.04]
include:
- python-version: "3.10"
os: macos-latest
- python-version: "3.10"
os: windows-latest

steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/poetrybuild
with:
python: ${{ matrix.python-version }}
poetry_args: --only main
- name: Execute compliance-assistant
run: poetry run compliance-assistant --help

# Test building the package and installing it via pip3
test-build-install:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install poetry
run: pip install poetry
- name: Build package
run: poetry build
- name: Install package
run: pip3 install dist/compliance_assistant-*.tar.gz
- name: Run package
run: |
compliance-assistant --version
compliance-assistant --help
# Formatting
pylint:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/poetrybuild
- name: Lint with pylint
run: poetry run pylint complassist/

formatting:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/poetrybuild
- name: Test formatting with isort and black
run: |
poetry run isort --check complassist/
poetry run black --check .
mypy:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/poetrybuild
- name: Test typing with mypy
run: poetry run mypy

# REUSE
reuse:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check REUSE Compliance
uses: fsfe/reuse-action@v3

0 comments on commit 0b2e964

Please sign in to comment.