Roger Gonzalez 0a37d3a23a
Some checks failed
CI + Deploy / lint (push) Successful in 6s
CI + Deploy / test (push) Successful in 10s
CI + Deploy / deploy_to_pypi (push) Failing after 5s
CI + Deploy / deploy_to_dockerhub (push) Has been skipped
CI + Deploy / deploy_to_gitea (push) Has been skipped
Update CI build dependencies
- Update `pip` installation to use `uv pip`.
- Ensure consistent dependency installation in CI.
2025-05-17 14:31:03 -03:00

107 lines
2.6 KiB
YAML

name: CI + Deploy
on:
push:
branches:
- master
pull_request:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install uv
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
echo "$HOME/.cargo/bin" >> $GITEA_PATH
- name: Run Ruff
run: |
uv venv .venv
source .venv/bin/activate
uv run ruff check
uv run ruff format --check
test:
runs-on: ubuntu-latest
needs: lint
steps:
- uses: actions/checkout@v3
- name: Install uv
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
echo "$HOME/.cargo/bin" >> $GITEA_PATH
- name: Run Tests
run: |
uv venv .venv
source .venv/bin/activate
uv run pytest -v --cov=. --cov-report=xml
- name: Upload to Codecov
run: bash <(curl -s https://codecov.io/bash)
deploy_to_pypi:
runs-on: ubuntu-latest
needs: test
if: gitea.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v3
- name: Install uv + build tools
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
echo "$HOME/.cargo/bin" >> $GITEA_PATH
- name: Publish to PyPI
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
uv venv .venv
source .venv/bin/activate
uv pip install --system build twine
uv run python -m build
uv run python -m twine upload dist/*
deploy_to_dockerhub:
runs-on: ubuntu-latest
needs: [deploy_to_pypi]
if: gitea.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v3
- name: Log in to DockerHub
run: echo "${{ secrets.DOCKERHUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push to DockerHub
run: |
docker buildx build --push \
--tag rogsme/subscleaner:latest \
.
deploy_to_gitea:
runs-on: ubuntu-latest
needs: [deploy_to_pypi]
if: gitea.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v3
- name: Log in to Gitea Registry
run: echo "${{ vars.REPOSITORY_TOKEN }}" | docker login git.rogs.me -u rogs --password-stdin
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push to Gitea
run: |
docker buildx build --push \
--tag git.rogs.me/rogs/subscleaner:latest \
.