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
64 lines
1.9 KiB
YAML
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"
|