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"