• v2.9.0 1039a32d07

    v2.9.0
    All checks were successful
    published / tag-is-on-stable (push) Has been skipped
    published / fetched (push) Successful in 0s
    published / projectfile-is-valid (push) Successful in 4s
    published / gpg-is-ready (push) Successful in 5s
    published / source-is-tested (push) Successful in 5s
    published / signing-is-ready (push) Successful in 6s
    published / source-is-compliant (push) Successful in 7s
    published / projectfile-is-ok (push) Successful in 4s
    published / source-is-secure (push) Successful in 11s
    published / source-passes-lint (push) Successful in 40s
    published / source-is-ok (push) Successful in 0s
    published / documentation-passes-lint (push) Successful in 49s
    published / documentation-is-ok (push) Successful in 0s
    published / inputs-are-ok (push) Successful in 0s
    published / binaries-are-built (riscv64, linux) (push) Successful in 5s
    published / binaries-are-built (arm64, linux) (push) Successful in 5s
    published / binaries-are-built (amd64, linux) (push) Successful in 5s
    published / binaries-are-built (arm64, darwin) (push) Successful in 5s
    published / binaries-are-built (amd64, darwin) (push) Successful in 5s
    published / gsa (arm64, darwin) (push) Successful in 5s
    published / gsa (arm64, linux) (push) Successful in 5s
    published / gsa (amd64, linux) (push) Successful in 5s
    published / gsa (amd64, darwin) (push) Successful in 5s
    published / gsa (riscv64, linux) (push) Successful in 5s
    published / binaries-are-ok (push) Successful in 0s
    published / binaries-are-signed (push) Has been skipped
    published / binaries-are-torrented (push) Has been skipped
    published / binaries-torrent-is-verified (push) Has been skipped
    published / image-is-built (amd64) (push) Successful in 33s
    published / image-has-sbom (amd64) (push) Has been skipped
    published / secrets-ready (push) Successful in 0s
    published / images-are-ok (push) Successful in 0s
    published / container-is-ok (push) Successful in 0s
    published / container-ready-to-test (push) Successful in 0s
    published / image-is-secure (amd64) (push) Successful in 7s
    published / container-is-diagnosed (push) Successful in 0s
    published / container-is-verified (amd64) (push) Successful in 22s
    published / image-is-ready (push) Successful in 0s
    published / artifacts-are-ok (push) Successful in 0s
    published / ready-to-publish (push) Successful in 0s
    published / release-is-dispatched (push) Successful in 2s
    published / publish-image (dockerhub) (push) Successful in 3s
    published / publish-image (kiota) (push) Successful in 4s
    published / image-is-signed (push) Has been skipped
    published / release-is-published (push) Has been skipped
    published / go-install-is-ok (push) Has been skipped
    published / release-notes-are-published (push) Has been skipped
    published / published (push) Successful in 0s
    Stable

    damian-buho released this 2026-10-17 03:55:18 +00:00 | 47 commits to main since this release

    Signed by damian-buho
    GPG key ID: 87B15EAD49FD22AB

    14 commits, 1 contributor, 8 hours since v2.8.0.

    Features

    • render: release from the stable branch run through a release-tag job (7b0ea2d)

    Bug fixes

    • deps: bump projectfile/core to v2.18.2 (c8ca0fc)
    • render: keep tag runs for a stable branch that declares no release-tag node (dd0b7cc)

    Installation

    Container image

    Pull the published container image:

    Pull from DockerHub — linux/amd64

    docker pull damianbuho/projectfile-ci:v2.9.0
    

    If the registries above are unreachable, pull from the origin instead:

    Pull from Kiota — linux/amd64

    docker pull kiota.ch/projectfile/ci:v2.9.0
    

    Go toolchain

    Install with the Go toolchain:

    go install projectfile.org/projectfile/ci/v2/cmd/pf-ci@v2.9.0
    

    Then run pf-ci --help.

    Prebuilt binary

    Download the prebuilt binary for your platform from this release:

    mkdir -p ~/.local/bin
    curl --fail --location --output ~/.local/bin/pf-ci https://kiota.ch/projectfile/ci/releases/download/v2.9.0/pf-ci-$(uname -s | tr A-Z a-z)-$(uname -m)
    chmod +x ~/.local/bin/pf-ci
    ~/.local/bin/pf-ci --help
    

    To uninstall, delete that one file: rm ~/.local/bin/pf-ci.

    Usage

    Lower the CI DAG to a forge’s workflow files:

    pf-ci resolve
    pf-ci generate -target forgejo
    pf-ci generate -target gha -check
    

    Verify

    Check that what you downloaded is what this project published.

    Container image

    The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.

    COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub
    cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/projectfile-ci:v2.9.0
    cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/projectfile/ci:v2.9.0
    cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/projectfile-ci:v2.9.0
    cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/projectfile/ci:v2.9.0
    

    Prebuilt binary

    The signature proves the binary is the one the maintainer’s release key signed.

    gpg --keyserver hkps://keys.openpgp.org --recv-keys 8F89CBF7C8D51F8BEC7533C00925F8F79EBD3257
    curl --fail --location --output pf-ci.asc https://kiota.ch/projectfile/ci/releases/download/v2.9.0/pf-ci-$(uname -s | tr A-Z a-z)-$(uname -m).asc
    gpg --verify pf-ci.asc pf-ci
    
    # every downloaded asset at once
    gpg --verify pf-ci-SHA256SUMS.asc pf-ci-SHA256SUMS
    sha256sum --check --ignore-missing pf-ci-SHA256SUMS
    

    Download via BitTorrent

    Fetch this release over BitTorrent with a magnet link, or with the attached .torrent file:

    Full changes: https://kiota.ch/projectfile/ci/compare/2.6.1...v2.9.0

    Downloads