From a121722c99b9628988a89cdc99fc246f5475265e Mon Sep 17 00:00:00 2001 From: Thomas Wilmering Date: Thu, 23 May 2024 13:35:29 +0100 Subject: [PATCH] add .github --- .github/workflows/check.yml | 76 +++++++++++++++++++++++++++++++++++ .github/workflows/publish.yml | 48 ++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 .github/workflows/check.yml create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml new file mode 100644 index 0000000..2606578 --- /dev/null +++ b/.github/workflows/check.yml @@ -0,0 +1,76 @@ +--- +name: check + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the "main" and "develop" branch + push: + branches: [main, develop] + pull_request: + branches: [main, develop] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + check: + + runs-on: ubuntu-latest + concurrency: testing_environment + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Install Task + uses: arduino/setup-task@v1 + + - name: Set up python + id: setup-python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + + - name: Install and configure poetry + uses: snok/install-poetry@v1 + with: + virtualenvs-create: true + virtualenvs-in-project: true + installer-parallel: true + + - name: Install dynamic versioning plugin + run: | + poetry self add "poetry-dynamic-versioning[plugin]" + + - name: mypy + run: | + task check:mypy + + - name: ruff + run: | + task check:ruff + + - name: pytest + env: + CMEM_BASE_URI: ${{ secrets.CMEM_BASE_URI }} + OAUTH_CLIENT_SECRET: ${{ secrets.OAUTH_CLIENT_SECRET }} + run: | + task custom:download_robot check:pytest + + - name: safety + run: | + task check:safety + + - name: Publish Test Report in Action + uses: mikepenz/action-junit-report@v4 + if: always() # always run even if the previous step fails + with: + report_paths: dist/junit-*.xml + + - name: Publish Test and Coverage Report as PR comment + uses: xportation/junit-coverage-report@main + if: github.event_name == 'pull_request' + with: + junit-path: dist/junit-pytest.xml + coverage-path: dist/coverage.xml + diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..664ec5e --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,48 @@ +--- +name: publish + +on: + push: + tags: # trigger the deploy job on tag creation + - "*" # Note: not all tags will result in allowed pypi version identifier + workflow_dispatch: # allows for manual trigger + +permissions: + contents: read + +jobs: + publish: + + runs-on: ubuntu-latest + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Install Task + uses: arduino/setup-task@v1 + + - name: Set up python + id: setup-python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + + - name: Install and configure poetry + uses: snok/install-poetry@v1 + with: + virtualenvs-create: true + virtualenvs-in-project: true + installer-parallel: true + + - name: Install dynamic versioning plugin + run: | + poetry self add "poetry-dynamic-versioning[plugin]" + + - name: Publish Package + env: + PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} + run: | + poetry config pypi-token.pypi "$PYPI_TOKEN" + poetry publish --build +