Commit Graph
18575 Commits
Author SHA1 Message Date
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 f0caf0d555 feat(scripts): harden the requests of the arch tag removal
- Passes the logins to curl on stdin, which keeps them out of the process list
- Sends a token only to the host the script expects
- Checks the format of version ids and tags before they go into a request
2026-11-02 00:18:34 +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
🏔️ Peak fbe5e831f4 feat: streamline cdn version file (#12426) 2026-11-02 00:08:14 +01:00
peaklabs-dev df760f292a docs: add the streamline CDN version file changes to CHANGELOG.md 2026-11-02 00:07:20 +01:00
peaklabs-dev bcd165a909 feat(install): add --preview and --nightly flags to install.sh
- Once Coolify is healthy, install.sh switches the instance to that update channel with php artisan app:update-channel
- The command and the update page share the rule that keeps the updates of the old channel after a switch to a more stable one
2026-11-02 00:07:20 +01:00
peaklabs-dev 0e30950793 feat(release): streamline versions.json on the CDN
- Every channel has a block of its own, every version after this one reads only these blocks
- Every stable sync also fills the coolify and traefik keys older instances read
- An instance keeps a copy of versions.json and reads upstream.json of the image until it has one
2026-11-02 00:07:20 +01:00
🏔️ Peak d759126149 ci: modernize coolify docker image (#12425) 2026-11-02 00:07:17 +01:00
peaklabs-dev f68b271d96 docs: add the modernize coolify image changes to CHANGELOG.md 2026-11-02 00:06:48 +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 100d0b0405 feat(scripts): add size.sh to measure image sizes 2026-11-02 00:06:48 +01:00
🏔️ Peak 64b18bc0e4 ci: harden workflows (#12424) 2026-11-02 00:06:44 +01:00
peaklabs-dev 3f7d9891a8 docs: add the harden workflows changes to CHANGELOG.md 2026-11-02 00:06:15 +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
Andras Bacsai e78f5fdf19 docs(agents): add the new release process to AGENTS.md (#12381) 2026-11-02 00:06:11 +01:00
peaklabs-dev d08dfcb22f docs: add the AGENTS.md changes to CHANGELOG.md 2026-11-02 00:05:26 +01:00
Andras Bacsai 923f96d752 docs(agents): add the new release process to AGENTS.md
- AGENTS.md forbade the release/v* branches the new release process needs
2026-11-02 00:05:26 +01:00
🏔️ Peak 2a77b57abc chore: remove unused and tmp files (#12360) 2026-11-02 00:05:22 +01:00
peaklabs-dev 48097c344b docs: add the removed files to CHANGELOG.md 2026-11-02 00:04:49 +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
🏔️ Peak 2d8fdcf1c1 feat: add update channels to the instance settings (#12359) 2026-11-02 00:04:46 +01:00
peaklabs-dev 07f95ff081 docs: add the new release channel settings to CHANGELOG.md 2026-11-02 00:04:26 +01:00
peaklabs-dev a608a37d8b feat: add update settings to the instance settings
- Adds the channels stable, preview, nightly and custom
- Preview and nightly read /coolify/release.json on the CDN and take the newest version of their channel and the more stable ones, nightly gets a new build of next or the release branch twice a day
- Custom installs any image tag of ghcr.io by hand, such as pr-1234 for the build of pull request 1234
- After a switch to a more stable channel, the instance keeps the updates of the channel it left until the stable release of its version is out
- The local versions.json moves to storage/app and is replaced in one step, a channel change replaces it without the version of the old channel
2026-11-02 00:04:26 +01:00
🏔️ Peak 3c00d5c429 build: move the helper image to coollabsio/coolify-helper (#12358) 2026-11-02 00:04:22 +01:00
peaklabs-dev 782fb5d6bc docs: add the split Coolify helper changes to CHANGELOG.md 2026-11-02 00:03:45 +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
🏔️ Peak babd21d51c feat: add new release process (#12357) 2026-11-02 00:03:41 +01:00
peaklabs-dev 8e200cc85d docs: add the new release process changes to CHANGELOG.md 2026-11-01 23:10:53 +01:00
peaklabs-dev 766a3b8fcb fix(release): preselect a minor for feat(release) changes
- only the commits that bump the Coolify version stay ignored, so a feat change to the release process asks for a minor
2026-11-01 19:37:43 +01:00
peaklabs-dev 9d1faa568e fix(release): version a pull request like a nightly of its base branch
- a pull request into next took the preview version in release.json, which still names 4.6.0-beta.1 once 4.6.0 is released, so its image sorted before 4.6.0
2026-11-01 19:37:43 +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 161f4459a6 feat(release): let the image set the Coolify version
- The upgrade script removes COOLIFY_VERSION from .env, so a tag such as nightly or pr-1234 is never taken for the version
- install.sh still takes a version such as 4.6.0-beta.1, LATEST_IMAGE in .env picks the image and the image carries its version
2026-11-01 19:37:39 +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