Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use venv in workflows #25

Merged
merged 11 commits into from
Jan 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 121 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
name: Continuous Integration

on:
push:
branches:
- main
pull_request:
workflow_dispatch:

jobs:
venv:
name: Create virtual environment
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4.1.1
- name: Set up Python
uses: actions/setup-python@v5.0.0
id: setup_python
with:
python-version: "3.8"
- name: Create virtual environment
uses: actions/cache@v4.0.0
with:
key: venv-${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ github.run_id }}
restore-keys: venv-${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}
path: .venv
- name: Update Pip
run: |
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install --upgrade --upgrade-strategy eager .[dev,test] mypy types-setuptools

format:
name: Check formatting
runs-on: ubuntu-latest
needs: [venv]
steps:
- name: Checkout sources
uses: actions/checkout@v4.1.1
- name: Set up Python
uses: actions/setup-python@v5.0.0
id: setup_python
with:
python-version: "3.8"
- name: Cache virtual environment
uses: actions/cache@v4.0.0
with:
key: venv-${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ github.run_id }}
path: .venv
- name: Check Python formatting
uses: psf/black@23.12.1
- name: Check JSON formatting
run: |
source .venv/bin/activate
pre-commit run check-json --all-files
- name: Check other formatting
run: |
source .venv/bin/activate
pre-commit run end-of-file-fixer --all-files
pre-commit run trailing-whitespace --all-files

lint:
name: Lint
runs-on: ubuntu-latest
needs: [venv]
steps:
- name: Checkout sources
uses: actions/checkout@v4.1.1
- name: Set up Python
uses: actions/setup-python@v5.0.0
id: setup_python
with:
python-version: "3.8"
- name: Cache virtual environment
uses: actions/cache@v4.0.0
with:
key: venv-${{ runner.os }}-${{ steps.setup_python.outputs.python-version}}-${{ github.run_id }}
path: .venv
- name: Lint with ruff
uses: chartboost/ruff-action@v1.0.0
- name: Lint with mypy
run: |
source .venv/bin/activate
mypy --ignore-missing-imports ssllabs
mypy --ignore-missing-imports tests

test:
name: Test with Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
needs: [format, lint]
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- name: Checkout sources
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5.0.0
id: setup_python
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
check-latest: true
- name: Use virtual environment
uses: actions/cache@v4.0.0
with:
key: venv-${{ runner.os }}-${{ steps.setup_python.outputs.python-version}}-${{ github.run_id }}
restore-keys: venv-${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}
path: .venv
- name: Install dependencies
run: |
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install --upgrade --upgrade-strategy eager .[test]
- name: Test with pytest
run: |
source .venv/bin/activate
pytest --cov=ssllabs
26 changes: 26 additions & 0 deletions .github/workflows/cleanup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Cleanup
on:
pull_request:
types:
- closed
jobs:
cleanup:
runs-on: ubuntu-latest
steps:
- name: Cleanup cache
run: |
gh extension install actions/gh-actions-cache

REPO=${{ github.repository }}
BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"
cacheKeys=$(gh actions-cache list -R $REPO -B $BRANCH | cut -f 1 )

# set this to not fail the workflow while deleting cache keys
set +e

for cacheKey in $cacheKeys
do
gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
done
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Upload Python Package
name: Publish Python Package

on:
release:
Expand Down Expand Up @@ -26,6 +26,8 @@ jobs:
python-version: "3.12"
- name: Install dependencies
run: |
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install .[docs]
- name: Build documentation
Expand Down
73 changes: 0 additions & 73 deletions .github/workflows/pythonpackage.yml

This file was deleted.