Files
Crabstero/.gitea/workflows/cd.yml
T
LogalDeveloper de19074fc0
Audit / Dependencies (push) Successful in 7s
CD / Publish (push) Successful in 5s
CI / Formatting (push) Successful in 5s
CI / Linting (push) Successful in 4s
CI / Tests (push) Successful in 7s
CI / Type Checking (push) Successful in 9s
CI / Spelling (push) Successful in 4s
Switched Syft SBOM generation to runtime-only venv scan.
2026-05-15 20:33:39 -04:00

64 lines
1.9 KiB
YAML

name: CD
on:
push:
tags: ["v*"]
permissions:
contents: read
# packages: write # not yet supported by Gitea
env:
UV_PYTHON_DOWNLOADS: never
jobs:
publish:
name: Publish
runs-on: logaldeveloper-archlinux-ci
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
- name: Install dependencies
run: uv sync --locked --no-dev
- name: Generate package metadata
id: metadata
run: |
version="${{ gitea.ref_name }}"
version="${version#v}"
printf 'version=%s\n' "$version" | tee -a "$GITEA_OUTPUT"
- name: Build package
run: uv build
- name: Generate SBOM
env:
SYFT_CHECK_FOR_APP_UPDATE: "false"
run: |
syft scan dir:.venv \
--override-default-catalogers python-installed-package-cataloger \
--select-catalogers=-file \
--source-name git.logal.dev/LogalDeveloper/Crabstero \
--source-version "${{ steps.metadata.outputs.version }}" \
--output syft-table \
--output cyclonedx-json=crabstero-${{ steps.metadata.outputs.version }}.cyclonedx.json
sha256sum crabstero-${{ steps.metadata.outputs.version }}.cyclonedx.json
zstd -T0 --ultra -22 \
crabstero-${{ steps.metadata.outputs.version }}.cyclonedx.json
- name: Publish package
run: uv publish
env:
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_TOKEN }}
- name: Upload SBOM artifact
uses: christopherhx/gitea-upload-artifact@8818363695ca2d5782c64f6453273341374767b7 # v7
with:
name: crabstero-cyclonedx-${{ steps.metadata.outputs.version }}
path: crabstero-${{ steps.metadata.outputs.version }}.cyclonedx.json.zst
if-no-files-found: error
archive: "false"