Commit a0cc7d6b by Bjorn Neergaard Committed by Arun Babu Neelicattu

ci: DRY actions workflows

parent 9fc9a774
name: Test Installation Script
on:
push:
paths:
- 'install-poetry.py'
- '.github/workflows/installer.yml'
branches:
- master
pull_request:
paths:
- 'install-poetry.py'
- '.github/workflows/installer.yml'
branches:
- '**'
jobs:
default:
name: ${{ matrix.os }} / ${{ matrix.python-version }} / install-poetry.py ${{ matrix.args }}
runs-on: ${{ matrix.os }}-latest
strategy:
matrix:
os: [ Ubuntu, MacOS, Windows ]
python-version: [ "3.6", "3.7", "3.8", "3.9", "3.10" ]
args:
- ""
- "--preview"
- "--git https://github.com/python-poetry/poetry.git"
- "--version 1.1.11"
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Update PATH
if: ${{ matrix.os != 'Windows' }}
shell: bash
run: echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Update PATH for Windows
if: ${{ matrix.os == 'Windows' }}
shell: bash
run: echo "$APPDATA\Python\Scripts" >> $GITHUB_PATH
- name: Install Poetry
shell: bash
run: python install-poetry.py -y
- name: Upload Failure Log
uses: actions/upload-artifact@v2
if: failure()
with:
name: poetry-installer-error.log
path: poetry-installer-error-*.log
- name: Verify Installation
shell: bash
run: |
set -e
poetry new foobar
cd foobar
poetry config virtualenvs.in-project true
poetry env use python
[ "$(poetry run python --version)" == "$(python --version)" ] \
|| { echo >&2 "ERROR: Virtual environment Python version do not match system version." && exit 1; }
- name: Uninstall Poetry
shell: bash
run: |
python install-poetry.py -y --uninstall
{ type poetry 2>/dev/null >&2 && exit 1; } || exit 0
......@@ -19,12 +19,14 @@ jobs:
tests:
name: ${{ matrix.os }} / ${{ matrix.python-version }} ${{ matrix.suffix }}
runs-on: ${{ matrix.os }}-latest
continue-on-error: ${{ matrix.experimental }}
strategy:
matrix:
os: [Ubuntu, MacOS, Windows]
python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"]
fail-fast: false
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v2
......@@ -35,26 +37,21 @@ jobs:
- name: Get full Python version
id: full-python-version
shell: bash
run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))")
- name: Bootstrap poetry
shell: bash
run: |
curl -sL https://install.python-poetry.org | python - -y ${{ matrix.bootstrap-args }}
- name: Update PATH
if: ${{ matrix.os != 'Windows' }}
shell: bash
run: echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Update Path for Windows
if: ${{ matrix.os == 'Windows' }}
shell: bash
run: echo "$APPDATA\Python\Scripts" >> $GITHUB_PATH
- name: Configure poetry
shell: bash
run: poetry config virtualenvs.in-project true
- name: Set up cache
......@@ -66,13 +63,10 @@ jobs:
- name: Ensure cache is healthy
if: steps.cache.outputs.cache-hit == 'true'
shell: bash
run: timeout 10s poetry run pip --version || rm -rf .venv
- name: Install dependencies
shell: bash
run: poetry install
- name: Run pytest
shell: bash
run: poetry run python -m pytest -p no:sugar -q tests/
......@@ -6,17 +6,13 @@ on:
- '*.*.*'
jobs:
Release:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Get tag
id: tag
run: echo ::set-output name=tag::${GITHUB_REF#refs/tags/}
- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
......
......@@ -3,18 +3,18 @@ name: Skip All Jobs
on:
push:
paths:
- '!**'
- 'docs/**'
- '.cirrus.yml'
paths-ignore:
- '**'
- '!docs/**'
- '!.cirrus.yml'
branches:
- master
- develop
pull_request:
paths:
- '!**'
- 'docs/**'
- '.cirrus.yml'
paths-ignore:
- '**'
- '!docs/**'
- '!.cirrus.yml'
branches:
- '**'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment