371 Commits
Author SHA1 Message Date
peaklabs-dev ef88ea07da ci: disable the manifest cleanup after a failed run 2026-11-03 17:41:10 +01:00
peaklabs-dev db1cf006d5 ci: upload the list of the manifests to delete in every run 2026-11-02 21:55:04 +01:00
peaklabs-dev 80574bc164 ci: run the nightly and main builds during working hours 2026-11-02 21:55:04 +01:00
peaklabs-dev 33c0f6e571 fix(release): sync the preview channel of the CDN before the stable one
- the stable channel opens a pull request and the preview channel pushes to main, both from a fresh clone of the CDN
- the stable pull request now branches off main after the preview push, so a release that moves both latest and preview no longer leaves it with a conflict in versions.json
2026-11-02 17:44:41 +01:00
🏔️ Peak bf97496753 ci: add a temporary workflow that list the arch tags to remove (#12403) 2026-11-02 00:45:50 +01:00
peaklabs-dev e49fcbf0b2 ci: lock the actions of the arch tag removal in actions.lock 2026-11-02 00:18:38 +01:00
peaklabs-dev 612df5a684 ci: add a temporary workflow that lists the arch tags to remove
- scripts/tmp-remove-arch-tags.sh lists the arch tags such as 4.1.2-amd64 whose image a multi-platform tag still reaches, and removes as many as --remove asks for
- A registry deletes a tag only with its image, so --remove moves each arch tag to a placeholder manifest and deletes the placeholder, the image stays, as the multi-platform manifest points at it by digest
2026-11-02 00:18:33 +01:00
peaklabs-dev eadc4708ab ci: delete 200 unused manifests every hour 2026-11-02 00:18:31 +01:00
peaklabs-dev 70ba07947f ci(build): attach the full provenance and an SBOM to every image
- enable full provenance attestation explicitly for every image build
- attach an SBOM attestation to every image, which lists every package of the image
2026-11-02 00:06:48 +01:00
peaklabs-dev a4b2b2ea4e build: compress the image layers with zstd
- zstd compresses better than gzip and compresses and decompresses faster, pulling needs Docker Engine 23.0 or later and Coolify requires 24.0
2026-11-02 00:06:48 +01:00
peaklabs-dev aefd2cff89 feat(release): copy the image labels to the release index
- ghcr.io reads the description and the license of an image of several platforms from the annotations of its index, not from the labels of each image
2026-11-02 00:06:48 +01:00
peaklabs-dev 9f21022732 build(image): set every OCI label on the production and development images 2026-11-02 00:06:48 +01:00
peaklabs-dev 2c71920c55 ci(size): comment the size change on pull requests 2026-11-02 00:06:48 +01:00
peaklabs-dev c38ce3caef ci: clean up the issue and pull request workflows
- name the files and workflows like the release workflows and every step after what it does
- run all workflows without the GitHub Actions cache like the release workflow
2026-11-02 00:06:15 +01:00
peaklabs-dev 79fd5a8f7e ci: fix every finding of jactionlint with the pedantic profile
- pull_request_target and workflow_run stay, these workflows run no code of the pull request
2026-11-02 00:06:15 +01:00
peaklabs-dev 61ce240425 ci: lock the actions in actions.lock 2026-11-02 00:06:15 +01:00
peaklabs-dev 4a6a2d81ff ci: remove the workflow that deletes the untagged images on ghcr.io
- a release pushes its platform images and attestations untagged behind its tagged index, one run would delete them and break every published version
2026-11-02 00:06:15 +01:00
peaklabs-dev ff8c72a8b9 ci: bump GitHub Actions to the latest releases
- actions/stale to v11 and actions/github-script to v9, both ran on Node.js 20, which GitHub Actions removed
2026-11-02 00:06:15 +01:00
peaklabs-dev 8d1776bdcf chore: remove Windows support
- Removes coolify-testing-host.yml too, it published the testing host to Docker Hub for docker-compose.windows.yml alone, the development setup builds it locally
2026-11-02 00:04:49 +01:00
peaklabs-dev 90ceb78eda ci: remove unused and temporary workflows 2026-11-02 00:04:49 +01:00
peaklabs-dev 06ad71439c build: move the helper image to coollabsio/coolify-helper
- Docker Compose builds the development helper from the main branch of that repository, scripts/dev-helper from there or from a local checkout
- Remove buildHelperImage from the settings, nothing calls it since its button was removed
2026-11-02 00:03:45 +01:00
peaklabs-dev 7d1970a8c7 ci: build pull requests from branches that release
- a push that changes release.json stays unbuilt, the release workflow builds it
2026-11-01 19:37:42 +01:00
peaklabs-dev 4c78b72e9b ci: merge forward only after a release
- next gets one merge per release, named after its tag, and no merge of main commits that are not released yet
2026-11-01 19:37:42 +01:00
peaklabs-dev 0922ebe019 ci: name every step and job after what it does 2026-11-01 19:37:42 +01:00
peaklabs-dev 5f48d2fc54 ci: simplify the PR description of a conflicting merge 2026-11-01 19:37:41 +01:00
peaklabs-dev fc01324da5 ci(release): plan the moving tags in a step of their own 2026-11-01 19:37:41 +01:00
peaklabs-dev 2956929817 refactor(release): rename version.sh to plan-version.sh 2026-11-01 19:37:41 +01:00
peaklabs-dev e30cdd8325 refactor(release): put a v in front of the upstream version in tags
- An upstream line is tagged v<upstream>-v<version> in git instead of <upstream>-v<version>
- Coolify has no upstream lines, its git tags stay v<version>, and the v is stripped from the Docker image tags
2026-11-01 19:37:40 +01:00
peaklabs-dev a9044e87fc ci(build): skip pull requests from branches that release 2026-11-01 19:37:40 +01:00
peaklabs-dev 852fc041f3 ci: build main twice a day for testing
- Moves the main tag on ghcr.io when main changed since the last build, versioned after the stable version like 4.5.0.20261028.1
- Pushes no version tag, so the clean manifests workflow deletes the build it replaces
- version.sh --main picks the version from MAIN_VERSION and MAIN_REVISION, the labels of the build main points at
2026-11-01 19:37:40 +01:00
peaklabs-dev e0fb2b3897 ci(release): build and release a nightly twice a day
- Remove other/nightly, the nightly channel uses the production files, so there are no longer two copies to keep in sync
- sync-cdn.sh --nightly syncs the files of the commit the nightly is built from to /coolify/nightly on the CDN, with the nightly version in its versions.json and in /coolify/release.json, and pushes them straight to main of coollabs-cdn
- version.sh picks the branch the nightly comes from, the release branch of the next version after the newest stable one or next, and names the version <preview>.<YYYYMMDD>.<N>
- The image is labeled with its version and commit, the nightly workflow reads both from the image nightly points at to count up N and to skip a run without a new commit
2026-11-01 19:37:39 +01:00
peaklabs-dev 2615559b5e ci: publish an image for every pull request
- version.sh --build appends the -pr.<number> suffix
2026-11-01 19:37:39 +01:00
peaklabs-dev 02c370d34b ci: use the new release process
- build.yaml and release.yaml replace the main, next, rc, release and hotfix workflows
2026-11-01 15:16:40 +01:00
peaklabs-dev 8878ea0dcd ci: merge main and release branches forward
- Replaces sync-main-to-next, which merged main into next every 10 minutes
2026-11-01 15:16:01 +01:00
peaklabs-dev 911e68ab27 feat(release): add release.json and upstream.json
- config/constants.php reads the Coolify and helper versions from them
- The image and sync-cdn.sh write versions.json from upstream.json, install.sh reads it by key
2026-11-01 15:15:33 +01:00
peaklabs-dev 42382d8a4c docs: write CHANGELOG.md by hand instead of with git-cliff
- git-cliff did not work properly with the style of our commit messages, and the CHANGELOG.md it wrote did not fit our style
2026-11-01 15:10:56 +01:00
peaklabs-dev 4b7b9bc145 ci: run the workflow as a dry run first
- a manually triggered first run in CI uploads the full list of manifests to delete
- a later pull request makes the workflow hourly again
2026-10-30 22:37:03 +01:00
peaklabs-dev 26f8c990a5 ci: delete unused manifests every hour
- with a run every hour and 200 deletions per run the about 35,000 unused manifests on ghcr.io and docker.io are deleted in about 7 days, then the schedule goes back to every 2 weeks or every month
- a run deletes 200 at most, as GitHub allows an account 500 requests per hour and the ghrc.io PAT is an account level PAT
2026-10-30 22:35:47 +01:00
Andras BacsaiandClaude Opus 5.5 ade4bae265 ci: remove temporary release image rebuild workflow
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 13:52:15 +02:00
Andras BacsaiandClaude Opus 5.5 5ca69705d6 ci: add temporary workflow to rebuild a published release image
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 13:42:57 +02:00
Andras Bacsai e9f69ce95b Merge remote-tracking branch 'origin/main' into fix/secret-manager-request-timeout 2026-10-21 16:23:00 +02:00
🏔️ Peak ff642008f1 fix(security): releease v4.4.7 (#12257) 2026-10-21 16:18:27 +02:00
Andras Bacsai 00df30ef55 Merge remote-tracking branch 'origin/main' into fix/secret-manager-request-timeout 2026-10-21 16:17:49 +02:00
peaklabs-dev a220c1c7fe ci(release): allow stable releases from fix branches 2026-10-21 15:50:33 +02:00
peaklabs-dev 48573fc865 ci: add temporary hotfix release workflow 2026-10-21 14:20:51 +02:00
peaklabs-dev 435b2bcf54 ci: add temporary patched PHP base image build 2026-10-21 14:20:51 +02:00
Andras Bacsai 408ee23936 chore(release): use next as the development branch
Sync main into next automatically and update release workflows and contributor docs for the long-lived next branch.
2026-10-20 18:44:26 +02:00
Andras Bacsai 81239e6132 ci(release): sync main into every release/v* branch
Replace the next-branch sync with per-release merges and conflict pull
requests. Document the automatic sync schedule in RELEASE.md.
2026-10-07 19:52:31 +02:00
Andras Bacsai 2882fc128d ci(release): publish multiarch dev images for release branches
Build release/vX.Y pushes for amd64 and aarch64, then publish
X.Y-dev.<short-sha> and moving X.Y-dev tags to GHCR and Docker Hub.
Report build status to Discord and document the release branch tags.
2026-10-07 19:40:42 +02:00
Andras Bacsai 439ee6faea fix: restrict proxy content access and scope backup storage to owners
- Hide proxy configuration contents from users without update permission.
- Select and validate backup S3 storage against the resource's team.
- Keep scheduled branch syncs green while a conflict PR remains open.
- Document external mount permissions and Sentinel traffic limits.
- Add regression coverage for authorization and backup storage selection.
2026-10-05 13:20:19 +02:00