Skip to content

build(deps): bump the github-actions group with 2 updates #426

build(deps): bump the github-actions group with 2 updates

build(deps): bump the github-actions group with 2 updates #426

Workflow file for this run

name: Build and Test
on:
push:
branches:
- main
- feature/*
- fix/*
pull_request:
branches:
- main
release:
types: [published]
jobs:
test:
permissions:
contents: read
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
# Test all Python versions on Ubuntu (primary platform)
- os: ubuntu-latest
python-version: "3.10"
- os: ubuntu-latest
python-version: "3.11"
- os: ubuntu-latest
python-version: "3.12"
- os: ubuntu-latest
python-version: "3.13"
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Initialize submodules
env:
GIT_ASKPASS: /bin/echo
GH_PAT: ${{ secrets.GH_PAT }}
run: |
git config --global url."https://${GH_PAT}@github.com/".insteadOf "https://github.com/"
git submodule update --init --recursive
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}
- name: Install the project
run: uv sync --locked --all-extras --dev
- name: Generate protobuf code
shell: bash
run: |
source .venv/bin/activate
./scripts/compile_proto.sh || (echo "Protobuf compilation failed. Ensure submodules are initialized and proto files exist." && exit 1)
- name: Run linter
run: |
uv run ruff check
- name: Run code formatting check
run: |
uv run ruff format --check
- name: Run type checking
run: |
uv run basedpyright
- name: Run tests
run: |
uv run pytest -m 'not functional' --tb=auto --cov-report=term-missing:skip-covered --cov=src/resolver_athena_client tests/
build:
needs: test
permissions:
contents: read
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
# required for guessing versioning for pre-releases
fetch-depth: 0
fetch-tags: true
- name: Initialize submodules
run: git submodule update --init --recursive
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
- name: Set up Python
run: uv python install
- name: Install the project
run: uv sync --locked --all-extras --dev
- name: Generate protobuf code
run: |
source .venv/bin/activate
./scripts/compile_proto.sh || (echo "Protobuf compilation failed. Ensure submodules are initialized and proto files exist." && exit 1)
- name: Set version from tag
run: |
if [[ "$GITHUB_REF" == refs/tags/* ]]; then
TAG_VERSION=${GITHUB_REF#refs/tags/}
# Remove 'v' prefix if present
VERSION=${TAG_VERSION#v}
echo "Setting version to: $VERSION"
uv version "$VERSION"
else
if [[ "$GITHUB_REF" == refs/heads/main ]]; then
echo "On main branch, using default version"
else
# we want to build pre-release versioning for other branches, but only feature/* and fix/* will get published.
LAST_TAG=$(git describe --abbrev=0 --tags)
uv version "$LAST_TAG"
uv version --bump patch --bump dev="$(date +%Y%m%d%H%M%S)"
fi
fi
- name: Build package
run: uv build
- name: Upload build artifacts
uses: actions/upload-artifact@v7
with:
name: dist
path: dist/
publish:
needs: [test, build]
runs-on: ubuntu-latest
if: >
(github.event_name == 'release' && github.event.action == 'published') ||
(github.event_name == 'push' && (
startsWith(github.ref, 'refs/heads/feature') ||
startsWith(github.ref, 'refs/heads/fix')))
environment:
name: pypi
url: https://pypi.org/p/resolver-athena-client
permissions:
id-token: write
steps:
- uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
- name: Download build artifacts
uses: actions/download-artifact@v8
with:
name: dist
path: dist/
- name: Publish package distributions to PyPI
run: uv publish --trusted-publishing always