From 2a8e229357e5eb53d9c0d049f951dfa7c00dfc32 Mon Sep 17 00:00:00 2001 From: Oskar Hollmann Date: Fri, 24 Nov 2023 20:29:29 +0100 Subject: [PATCH] chore: Start using Github Pipelines instead of Travis --- .github/workflows/test-and-deploy.yaml | 50 ++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/test-and-deploy.yaml diff --git a/.github/workflows/test-and-deploy.yaml b/.github/workflows/test-and-deploy.yaml new file mode 100644 index 0000000..52062ba --- /dev/null +++ b/.github/workflows/test-and-deploy.yaml @@ -0,0 +1,50 @@ +name: Run Tests & Deploy +on: [push, pull_request] + +jobs: + build-and-test: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] + services: + postgres: + image: postgres + env: + POSTGRES_PASSWORD: postgres + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip setuptools wheel + pip install -e '.[tests]' + - name: Install packages needed for CI + run: pip install pre-commit + - name: Lint all files + run: pre-commit run --all-files --show-diff-on-failure + - name: Run tests + run: python setup.py test + deploy: + runs-on: ubuntu-latest + needs: build-and-test + if: github.ref == 'refs/heads/main' + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + token: ${{ secrets.PUBLISH_TOKEN }} + - name: Semantic release + uses: relekang/python-semantic-release@master + with: + # Personal Access Token that belongs to an admin of the repo must + # be set in PUBLISH_TOKEN secret to bypass `main` branch protection + github_token: ${{ secrets.PUBLISH_TOKEN }}