- Go 95.2%
- Go Template 2.5%
- Shell 1.3%
- Python 0.4%
- Dockerfile 0.4%
- Other 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks failed
published / projectfile-is-valid (push) Successful in 3s
published / release-tag (push) Successful in 2s
published / runner-is-ready (push) Failing after 3s
published / source-is-compliant (push) Successful in 6s
published / source-is-tested (push) Successful in 5s
published / source-is-secure (push) Successful in 12s
published / documentation-passes-lint (push) Successful in 55s
published / source-passes-lint (push) Successful in 52s
published / gpg-is-ready (push) Successful in 4s
published / projectfile-is-ok (push) Successful in 5s
published / signing-is-ready (push) Successful in 5s
published / binaries-are-built (amd64, darwin) (push) Has been skipped
published / binaries-are-built (amd64, linux) (push) Has been skipped
published / binaries-are-built (arm64, darwin) (push) Has been skipped
published / binaries-are-built (arm64, linux) (push) Has been skipped
published / binaries-are-built (riscv64, linux) (push) Has been skipped
published / image-is-built (amd64) (push) Has been skipped
published / container-is-verified (amd64) (push) Has been skipped
published / gsa (amd64, darwin) (push) Has been skipped
published / gsa (amd64, linux) (push) Has been skipped
published / gsa (arm64, darwin) (push) Has been skipped
published / gsa (arm64, linux) (push) Has been skipped
published / gsa (riscv64, linux) (push) Has been skipped
published / image-has-sbom (amd64) (push) Has been skipped
published / image-is-secure (amd64) (push) Has been skipped
published / binaries-are-signed (push) Has been skipped
published / image-is-published (dockerhub) (push) Has been skipped
published / image-is-published (kiota) (push) Has been skipped
published / binaries-are-torrented (push) Has been skipped
published / binaries-torrent-is-verified (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) Failing after 0s
|
||
| .compose | ||
| .container | ||
| .forgejo/workflows | ||
| .github/workflows | ||
| .makefile | ||
| .scripts | ||
| cmd/pf-ci | ||
| docs | ||
| dogfood | ||
| internal | ||
| LICENSES | ||
| .claudeignore | ||
| .containerignore | ||
| .dockerignore | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| .yamllint | ||
| AI_POLICY.md | ||
| CITATION.cff | ||
| CODE_OF_CONDUCT.md | ||
| CODEOWNERS | ||
| CONTRIBUTING.md | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| go.sum.license | ||
| lefthook.yaml | ||
| LICENSE | ||
| Makefile | ||
| projectfile.yaml | ||
| README.md | ||
| SECURITY.md | ||
| SUPPORT.md | ||
Projectfile CI Resolver
pf-ci lowers the vendor-neutral org.projectfile.ci signal DAG to concrete CI workflow files for Forgejo Actions and GitHub Actions, dispatching each provider leaf to its recipe in projectfile/actions. Companion binary to pf-cli for the projectfile.org tooling.
Features
- CI DAG to workflow lowering
See Features for the full list.
What this provides
- Executable
pf-ci— commandpf-ci - Container image
ghcr.io/projectfile-org/ci:latest - Container image
damianbuho/projectfile-ci:latest
Installation
Container image
Pull the published container image:
Pull from GHCR — linux/amd64, linux/arm64, linux/riscv64
docker pull ghcr.io/projectfile-org/ci:latest
Pull from DockerHub — linux/amd64
docker pull damianbuho/projectfile-ci:latest
Stable releases also publish X.Y.Z, X.Y and X tags — pull the precision you want to pin.
If the registries above are unreachable, pull from the origin instead:
Pull from Kiota — linux/amd64
docker pull kiota.ch/projectfile/ci:latest
Go toolchain
Install with the Go toolchain:
go install projectfile.org/projectfile/ci/v3/cmd/pf-ci@latest
Then run pf-ci --help.
Prebuilt binary
Download the prebuilt binary for your platform from GitHub Releases:
mkdir -p ~/.local/bin
curl --fail --location --output ~/.local/bin/pf-ci https://github.com/projectfile-org/ci/releases/latest/download/pf-ci-$(uname -s | tr A-Z a-z)-$(uname -m)
chmod +x ~/.local/bin/pf-ci
~/.local/bin/pf-ci --help
Published for: linux/amd64, linux/arm64, linux/riscv64, darwin/amd64, darwin/arm64
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
Building
Clone the repository with its submodules:
git clone --recurse-submodules https://codeberg.org/projectfile/ci ci && cd ci
Build the container image locally:
make container-build
Run make with no arguments for the default target; run make help to list every target.
For the local dev loop, make dev-container brings up the dev-container.
Pipeline entry points:
make analyzed— Run the heavy analysis sweep (mutation testing, benchmarks)make audited— Re-scan the pinned dependencies and published artifacts for new vulnerabilitiesmake check-outdated— Report every pinned dependency that lags upstreammake release-is-ready— Run the pseudo-CI pipeline locally — build, test and scan, without publishing
Documentation
Policies
Links
License
This project is licensed under MIT — see the LICENSE file for details.