Author SHA1 Message Date
jcabillot 27a26d3d84 Merge pull request 'ci(tag): déclenche Renovate sur tf-depl-kubernetes dès que l'image de release est poussée (phpapache)' (#30) from ci/renovate-dispatch-on-release into master
Renovate / renovate (push) Successful in 50s
Main Release / test (push) Successful in 1m41s
Main Release / build (push) Successful in 4m7s
Main Release / tag (push) Successful in 19s
Tag Release / build-push (push) Successful in 2m10s
Tag Release / trigger-renovate (push) Failing after 30s
Main Release / hadolint (push) Successful in 21s
Tag Release / hadolint (push) Successful in 14s
Tag Release / test (push) Successful in 1m23s
Reviewed-on: #30
2026-10-18 13:44:27 -04:00
opencodecabilloteu 5494947035 ci(tag): dispatch Renovate on tf-depl-kubernetes once the release image is pushed
PR Checks / hadolint (pull_request) Successful in 15s
PR Checks / build-test (pull_request) Successful in 1m55s
A release only reached perso_private/tf-depl-kubernetes on the next hourly
Renovate scan, so the image bump PR could lag up to an hour behind the tag.

After the image push completes, dispatch that repo's Renovate workflow through
the Gitea API (workflow_dispatch is already enabled there). It authenticates
with the RENOVATE_TOKEN org secret of this organisation — the same token the
Renovate instance itself uses, no extra credential. The job fails loudly so a
rotated token shows up instead of the trigger silently going missing.
2026-10-18 13:23:56 -04:00
opencodecabilloteu 341ab7f3ed Merge pull request 'chore(deps): update docker/setup-buildx-action digest to f87e599' (#29) from renovate/docker-setup-buildx-action-digest into master
Main Release / test (push) Successful in 18s
Renovate / renovate (push) Successful in 38s
Main Release / build (push) Successful in 15s
Main Release / tag (push) Successful in 12s
Tag Release / build-push (push) Successful in 1m23s
Main Release / hadolint (push) Successful in 7s
Tag Release / hadolint (push) Successful in 8s
Tag Release / test (push) Successful in 19s
2026-09-18 05:00:31 -04:00
renovate 07e1bf6465 chore(deps): update docker/setup-buildx-action digest to f87e599
renovate/stability-days Updates have met minimum release age requirement
PR Checks / hadolint (pull_request) Successful in 10s
PR Checks / build-test (pull_request) Successful in 26s
2026-09-18 08:31:01 +00:00
opencodecabilloteu b1aa38a094 Merge pull request 'chore(deps): update docker/build-push-action action to v7.4.0' (#28) from renovate/docker-build-push-action-7.x into master
Renovate / renovate (push) Successful in 42s
Main Release / test (push) Successful in 1m26s
Main Release / build (push) Successful in 19s
Main Release / tag (push) Successful in 13s
Tag Release / build-push (push) Successful in 2m7s
Main Release / hadolint (push) Successful in 7s
Tag Release / hadolint (push) Successful in 14s
Tag Release / test (push) Successful in 1m36s
2026-09-17 05:01:29 -04:00
renovate dde2e29976 chore(deps): update docker/build-push-action action to v7.4.0
renovate/stability-days Updates have met minimum release age requirement
PR Checks / hadolint (pull_request) Successful in 8s
PR Checks / build-test (pull_request) Successful in 1m21s
2026-09-17 08:32:21 +00:00
jcabillot 902b11b227 Merge pull request 'chore: remove legacy GitLab CI and Jenkins files' (#27) from ci/remove-legacy-ci into master
Main Release / test (push) Successful in 2m44s
Renovate / renovate (push) Successful in 1m41s
Main Release / build (push) Successful in 36s
Main Release / tag (push) Successful in 34s
Tag Release / build-push (push) Successful in 3m13s
Main Release / hadolint (push) Successful in 17s
Tag Release / hadolint (push) Successful in 15s
Tag Release / test (push) Successful in 39s
Reviewed-on: #27
2026-09-02 09:50:20 -04:00
OpenCode Cabillot f2e4956564 chore: remove legacy GitLab CI and Jenkins files
PR Checks / hadolint (pull_request) Successful in 19s
PR Checks / build-test (pull_request) Successful in 2m18s
2026-09-02 13:48:46 +00:00
opencodecabilloteu baa71cd658 Merge pull request 'chore(deps): update hadolint/hadolint-action action to v3.5.0' (#26) from renovate/hadolint-hadolint-action-3.x into master
Main Release / test (push) Successful in 1m49s
Renovate / renovate (push) Successful in 51s
Main Release / build (push) Successful in 40s
Main Release / tag (push) Successful in 22s
Tag Release / build-push (push) Successful in 3m14s
Main Release / hadolint (push) Successful in 15s
Tag Release / hadolint (push) Successful in 18s
Tag Release / test (push) Successful in 47s
2026-08-26 11:00:57 -04:00
renovate 570df505c2 chore(deps): update hadolint/hadolint-action action to v3.5.0
renovate/stability-days Updates have met minimum release age requirement
PR Checks / hadolint (pull_request) Successful in 16s
PR Checks / build-test (pull_request) Successful in 42s
2026-08-26 14:31:05 +00:00
opencodecabilloteu 1b1aa14edd Merge pull request 'chore(deps): update docker/setup-buildx-action digest to 37fe631' (#25) from renovate/docker-setup-buildx-action-digest into master
Main Release / test (push) Successful in 34s
Main Release / hadolint (push) Successful in 16s
Main Release / build (push) Successful in 38s
Main Release / tag (push) Successful in 17s
Renovate / renovate (push) Successful in 1m12s
Tag Release / build-push (push) Successful in 2m30s
Tag Release / hadolint (push) Successful in 18s
Tag Release / test (push) Successful in 35s
2026-08-21 07:01:39 -04:00
renovate b565fd2327 chore(deps): update docker/setup-buildx-action digest to 37fe631
renovate/stability-days Updates have met minimum release age requirement
PR Checks / hadolint (pull_request) Successful in 17s
PR Checks / build-test (pull_request) Successful in 43s
2026-08-21 10:35:30 +00:00
jcabillot fcb96610a3 Merge pull request 'ci: add Renovate workflow' (#24) from add-renovate-workflow into master
Main Release / test (push) Successful in 3m22s
Renovate / renovate (push) Failing after 12m41s
Main Release / build (push) Successful in 3m11s
Main Release / tag (push) Successful in 51s
Tag Release / build-push (push) Successful in 6m8s
Main Release / hadolint (push) Successful in 1m45s
Tag Release / hadolint (push) Successful in 26s
Tag Release / test (push) Successful in 3m29s
Reviewed-on: #24
2026-08-03 16:21:15 -04:00
OpenCode Cabillot 7dc43e0904 ci: add Renovate workflow
PR Checks / hadolint (pull_request) Successful in 13s
PR Checks / build-test (pull_request) Successful in 1m14s
2026-08-02 23:36:44 +00:00
opencodecabilloteu 5cd886f430 Merge pull request 'chore(deps): update hadolint/hadolint-action action to v3.4.0' (#23) from renovate/hadolint-hadolint-action-3.x into master
Main Release / test (push) Successful in 57s
Main Release / build (push) Successful in 2m38s
Main Release / tag (push) Successful in 38s
Tag Release / build-push (push) Successful in 4m47s
Main Release / hadolint (push) Successful in 17s
Tag Release / hadolint (push) Successful in 26s
Tag Release / test (push) Successful in 3m2s
2026-08-01 16:03:08 -04:00
renovate 079f6efde4 chore(deps): update hadolint/hadolint-action action to v3.4.0
renovate/stability-days Updates have met minimum release age requirement
PR Checks / hadolint (pull_request) Successful in 17s
PR Checks / build-test (pull_request) Successful in 31s
2026-08-01 14:30:31 +00:00
jcabillot a5cd54eb38 Merge pull request 'chore(deps): update docker/login-action digest to dbcb813' (#22) from renovate/docker-login-action-digest into master
Main Release / test (push) Failing after 4m46s
Main Release / build (push) Skipped
Main Release / tag (push) Skipped
Main Release / hadolint (push) Successful in 14s
Reviewed-on: #22
2026-07-29 11:47:15 -04:00
renovate 3027afec7b chore(deps): update docker/login-action digest to dbcb813
renovate/stability-days Updates have met minimum release age requirement
PR Checks / hadolint (pull_request) Successful in 2m27s
PR Checks / build-test (pull_request) Successful in 3m47s
2026-07-29 13:06:28 +00:00
jcabillot 8ef27ac007 Merge pull request 'chore(deps): update docker/login-action digest to 371161b' (#21) from renovate/docker-login-action-digest into master
Main Release / test (push) Successful in 1m39s
Main Release / build (push) Successful in 23s
Main Release / tag (push) Successful in 13s
Tag Release / build-push (push) Failing after 3m22s
Main Release / hadolint (push) Successful in 12s
Tag Release / hadolint (push) Successful in 14s
Tag Release / test (push) Successful in 1m47s
Reviewed-on: #21
2026-07-28 16:52:39 -04:00
renovate 7092cd0d18 chore(deps): update docker/login-action digest to 371161b
renovate/stability-days Updates have met minimum release age requirement
PR Checks / hadolint (pull_request) Successful in 11s
PR Checks / build-test (pull_request) Successful in 6m56s
2026-07-28 08:05:57 +00:00
jcabillot d7014ade38 Merge pull request 'chore(deps): update docker/login-action digest to abd2ef4' (#20) from renovate/docker-login-action-digest into master
Main Release / test (push) Successful in 30s
Main Release / build (push) Successful in 1m2s
Main Release / tag (push) Successful in 14s
Tag Release / build-push (push) Successful in 9m12s
Main Release / hadolint (push) Successful in 14s
Tag Release / test (push) Successful in 28s
Tag Release / hadolint (push) Successful in 9s
Reviewed-on: #20
2026-07-24 16:15:22 -04:00
renovate 0d0c424f59 chore(deps): update docker/login-action digest to abd2ef4
renovate/stability-days Updates have met minimum release age requirement
PR Checks / hadolint (pull_request) Successful in 14s
PR Checks / build-test (pull_request) Successful in 34s
2026-07-24 13:07:33 +00:00
jcabillot c92a5f3f34 Merge pull request 'chore(deps): update actions/checkout digest to 3d3c42e' (#19) from renovate/actions-checkout-digest into master
Main Release / test (push) Successful in 3m17s
Main Release / build (push) Successful in 6m2s
Main Release / tag (push) Successful in 16s
Tag Release / build-push (push) Failing after 5m51s
Main Release / hadolint (push) Successful in 18s
Tag Release / hadolint (push) Successful in 29s
Tag Release / test (push) Successful in 50s
Reviewed-on: #19
2026-07-23 07:53:21 -04:00
renovate 67c319e048 chore(deps): update actions/checkout digest to 3d3c42e
renovate/stability-days Updates have met minimum release age requirement
PR Checks / build-test (pull_request) Successful in 14s
PR Checks / hadolint (pull_request) Successful in 20s
2026-07-20 16:05:58 +00:00
jcabillot 5421ac18c8 Merge pull request 'chore(deps): update docker/login-action digest to af1e73f' (#18) from renovate/docker-login-action-digest into master
Main Release / test (push) Successful in 50s
Main Release / build (push) Successful in 17s
Main Release / tag (push) Successful in 16s
Tag Release / test (push) Successful in 56s
Tag Release / build-push (push) Successful in 1m32s
Main Release / hadolint (push) Failing after 13m47s
Tag Release / hadolint (push) Successful in 10s
Reviewed-on: #18
2026-07-03 16:20:29 -04:00
renovate c46a5ae131 chore(deps): update docker/login-action digest to af1e73f
renovate/stability-days Updates have met minimum release age requirement
PR Checks / hadolint (pull_request) Successful in 10s
PR Checks / build-test (pull_request) Successful in 52s
2026-07-03 14:23:14 +00:00
jcabillot 8b14984aae Merge pull request 'chore(deps): update docker/login-action digest to c99871d' (#15) from renovate/docker-login-action-digest into master
Main Release / test (push) Successful in 20s
Main Release / build (push) Successful in 23s
Main Release / tag (push) Successful in 14s
Tag Release / test (push) Successful in 22s
Tag Release / build-push (push) Successful in 2m18s
Main Release / hadolint (push) Successful in 7s
Tag Release / hadolint (push) Successful in 16s
Reviewed-on: #15
2026-07-02 09:40:31 -04:00
renovate 9f790ab805 chore(deps): update docker/login-action digest to c99871d
renovate/stability-days Updates have met minimum release age requirement
PR Checks / hadolint (pull_request) Successful in 12s
PR Checks / build-test (pull_request) Successful in 16s
2026-07-02 13:39:43 +00:00
opencodecabilloteu 3f91ad372c chore(deps): update docker/metadata-action digest to dc80280
Main Release / test (push) Successful in 21s
Main Release / build (push) Successful in 19s
Main Release / tag (push) Successful in 15s
Tag Release / test (push) Successful in 20s
Tag Release / build-push (push) Successful in 1m33s
Main Release / hadolint (push) Successful in 10s
Tag Release / hadolint (push) Successful in 10s
chore(deps): update docker/metadata-action digest to dc80280
2026-07-02 09:10:45 -04:00
renovate d6f755db71 chore(deps): update docker/metadata-action digest to dc80280
renovate/stability-days Updates have met minimum release age requirement
PR Checks / hadolint (pull_request) Successful in 9s
PR Checks / build-test (pull_request) Successful in 1m10s
2026-07-02 13:09:25 +00:00
opencodecabilloteu e9cdecbb50 chore(deps): update docker/setup-buildx-action digest to bb05f3f
Main Release / test (push) Successful in 1m13s
Main Release / build (push) Successful in 18s
Main Release / tag (push) Successful in 24s
Tag Release / test (push) Successful in 19s
Tag Release / build-push (push) Successful in 1m50s
Main Release / hadolint (push) Successful in 10s
Tag Release / hadolint (push) Successful in 7s
chore(deps): update docker/setup-buildx-action digest to bb05f3f
2026-07-02 08:37:28 -04:00
renovate 24dbc9be11 chore(deps): update docker/setup-buildx-action digest to bb05f3f
PR Checks / hadolint (pull_request) Successful in 7s
PR Checks / build-test (pull_request) Successful in 14s
2026-07-02 10:00:01 +00:00
jcabillot 503da4b731 Merge pull request 'chore(deps): update docker/build-push-action action to v7.3.0' (#14) from renovate/docker-build-push-action-7.x into master
Main Release / test (push) Successful in 17s
Main Release / build (push) Successful in 16s
Main Release / tag (push) Successful in 13s
Tag Release / test (push) Successful in 17s
Tag Release / build-push (push) Successful in 1m25s
Main Release / hadolint (push) Successful in 9s
Tag Release / hadolint (push) Successful in 9s
Reviewed-on: #14
2026-07-01 16:23:05 -04:00
renovate 055f16a775 chore(deps): update docker/build-push-action action to v7.3.0
PR Checks / hadolint (pull_request) Successful in 10s
PR Checks / build-test (pull_request) Successful in 47s
2026-07-01 14:56:36 +00:00
jcabillot 1c6a1e4b7d Merge pull request 'chore(deps): update php docker tag to v8.5' (#6) from renovate/php-8.x into master
Main Release / test (push) Successful in 54s
Main Release / build (push) Successful in 16s
Main Release / tag (push) Successful in 17s
Tag Release / test (push) Successful in 52s
Tag Release / build-push (push) Successful in 4m9s
Main Release / hadolint (push) Successful in 12s
Tag Release / hadolint (push) Successful in 12s
Reviewed-on: #6
2026-06-29 15:35:01 -04:00
renovate d1b6ff6692 chore(deps): update php docker tag to v8.5
PR Checks / hadolint (pull_request) Successful in 10s
PR Checks / build-test (pull_request) Successful in 56s
2026-06-29 14:55:46 +00:00
jcabillot fedce3c65e Merge pull request 'fix: image name php-apache → phpapache + cron -latest tags' (#13) from fix/image-name-and-cron-tags into master
Main Release / test (push) Successful in 12s
Main Release / build (push) Successful in 16s
Main Release / tag (push) Successful in 15s
Tag Release / test (push) Successful in 51s
Tag Release / build-push (push) Successful in 1m39s
Main Release / hadolint (push) Successful in 6s
Tag Release / hadolint (push) Successful in 10s
Reviewed-on: #13
2026-06-29 10:50:22 -04:00
Sagent 4a0303f483 fix: image name php-apache → phpapache, cron missing -latest tags
PR Checks / hadolint (pull_request) Successful in 10s
PR Checks / build-test (pull_request) Successful in 15s
2026-06-29 14:34:24 +00:00
jcabillot 5ea637337f Merge pull request 'fix(ci): correct corrupted docker/build-push-action SHA' (#12) from fix/build-push-action-sha into master
Main Release / test (push) Successful in 15s
Main Release / build (push) Successful in 13s
Main Release / tag (push) Successful in 11s
Tag Release / test (push) Successful in 12s
Tag Release / build-push (push) Successful in 1m28s
Main Release / hadolint (push) Successful in 9s
Tag Release / hadolint (push) Successful in 6s
Reviewed-on: #12
2026-06-29 08:12:29 -04:00
cloudix_mcp_server e5d211a4ed fix(ci): correct corrupted docker/build-push-action SHA
PR Checks / hadolint (pull_request) Successful in 7s
PR Checks / build-test (pull_request) Successful in 51s
Same 0d7f5c8f -> 0d6e8b85 corruption as web/ip. Fixes CI run #2402 job #6066.
2026-06-29 12:10:33 +00:00
jcabillot 3ca3ced7c0 Merge pull request 'chore(deps): update actions/checkout action to v7' (#11) from renovate/actions-checkout-7.x into master
Main Release / test (push) Successful in 2m29s
Main Release / build (push) Successful in 12s
Main Release / tag (push) Successful in 33s
Tag Release / test (push) Successful in 1m36s
Tag Release / build-push (push) Failing after 2m18s
Main Release / hadolint (push) Successful in 1m23s
Tag Release / hadolint (push) Successful in 23s
Reviewed-on: #11
2026-06-18 16:22:31 -04:00
renovate ea98362559 chore(deps): update actions/checkout action to v7
PR Checks / hadolint (pull_request) Successful in 9s
PR Checks / build-test (pull_request) Successful in 17s
2026-06-18 15:32:27 +00:00
jcabillot d89f16cfe2 Merge pull request 'CI: standardize workflows - tests mandatory, remove :latest push on master' (#10) from fix/workflow-standard into master
Main Release / test (push) Successful in 16s
Main Release / build (push) Successful in 14s
Main Release / tag (push) Successful in 12s
Tag Release / test (push) Successful in 17s
Tag Release / build-push (push) Failing after 1m34s
Main Release / hadolint (push) Successful in 7s
Tag Release / hadolint (push) Successful in 7s
Reviewed-on: #10
2026-06-13 17:37:42 -04:00
cloudix_mcp_server 4dc2cec24d ci: standardize tag.yaml - add test mandatory step, add -latest suffix tag
PR Checks / hadolint (pull_request) Successful in 5s
PR Checks / build-test (pull_request) Successful in 32s
2026-06-13 16:27:38 -04:00
cloudix_mcp_server 629029bdf6 ci: standardize cron.yaml - add test mandatory step, remove :latest push 2026-06-13 16:27:29 -04:00
cloudix_mcp_server a7b418e7a3 ci: standardize main.yaml - tests mandatory, remove :latest push on master 2026-06-13 16:27:18 -04:00
jcabillot 399c978553 Merge pull request 'refactor(ci): migrate to split Gitea Actions workflows' (#9) from fix/refactor-ci-pipelines into master
Main Release / test (push) Successful in 15s
Main Release / tag (push) Successful in 11s
Main Release / hadolint (push) Successful in 7s
Main Release / build-push (push) Successful in 2m6s
Reviewed-on: #9
2026-06-12 20:54:52 -04:00
cloudix_mcp_server 81663ba8e8 fix: rewrite cron.yaml with proper YAML (was base64-encoded)
PR Checks / build-test (pull_request) Successful in 19s
PR Checks / hadolint (pull_request) Successful in 6s
2026-06-12 20:24:39 -04:00
cloudix_mcp_server b31856d228 fix: rewrite tag.yaml with proper YAML (was base64-encoded) 2026-06-12 20:24:32 -04:00
cloudix_mcp_server 542f86b6cd fix: rewrite main.yaml with proper YAML (was base64-encoded)
PR Checks / hadolint (pull_request) Successful in 10s
PR Checks / build-test (pull_request) Successful in 21s
2026-06-12 20:24:25 -04:00
cloudix_mcp_server b2c0103b27 fix(ci): rewrite pr.yaml with parallel pattern
PR Checks / hadolint (pull_request) Successful in 6s
PR Checks / build-test (pull_request) Successful in 31s
2026-06-12 19:38:25 -04:00
cloudix_mcp_server bbecb203c9 feat(ci): add tag release workflow 2026-06-12 17:01:33 -04:00
cloudix_mcp_server 7947430ef1 feat(ci): add nightly cron rebuild workflow 2026-06-12 17:01:26 -04:00
cloudix_mcp_server d1c4b85c64 feat(ci): add PR workflow with lint and test jobs 2026-06-12 17:01:22 -04:00
cloudix_mcp_server 1e9e827b43 feat(ci): add main workflow for push to master 2026-06-12 17:01:20 -04:00
cloudix_mcp_server ef6c7b1b3e refactor(ci): replace single docker-build workflow with split workflow files 2026-06-12 17:00:50 -04:00
jcabillot bee9a79f62 Merge pull request 'ci: add automatic semver tagging on merge to master' (#8) from feat/semver-tag-action into master
Docker Build and Push / lint (push) Successful in 8s
Docker Build and Push / test (push) Has been skipped
Docker Build and Push / push (push) Has been skipped
Docker Build and Push / build (push) Failing after 2m8s
Reviewed-on: #8
2026-06-12 13:40:07 -04:00
cloudix_mcp_server 79c2ae6814 ci: add automatic semver tagging on merge to master
Docker Build and Push / lint (pull_request) Successful in 9s
Docker Build and Push / build (pull_request) Successful in 1m38s
Docker Build and Push / push (pull_request) Has been skipped
Docker Build and Push / test (pull_request) Successful in 41s
2026-06-12 13:21:21 -04:00
cloudix_mcp_server 24edaad520 ci: add automatic semver tagging on merge to master 2026-06-12 13:20:44 -04:00
jcabillot 5083ea89e8 Merge pull request 'fix(renovate): unquote FROM to enable docker image lookup' (#5) from chore/renovate into master
Docker Build and Push / lint (push) Successful in 12s
Docker Build and Push / test (push) Successful in 22s
Docker Build and Push / push (push) Successful in 24s
Docker Build and Push / build (push) Successful in 1m11s
Reviewed-on: #5
2026-06-09 08:37:00 -04:00
Sagent fb2bfb019a fix(renovate): remove quotes from FROM to enable docker image detection
Docker Build and Push / lint (pull_request) Successful in 6s
Docker Build and Push / build (pull_request) Successful in 1m31s
Docker Build and Push / push (pull_request) Has been skipped
Docker Build and Push / test (pull_request) Successful in 34s
2026-06-09 02:15:26 +00:00
jcabillot a6638c5ef1 Merge pull request 'Update hadolint/hadolint-action action to v3.3.0' (#4) from renovate/hadolint-hadolint-action-3.x into master
Docker Build and Push / lint (push) Successful in 8s
Docker Build and Push / test (push) Successful in 20s
Docker Build and Push / push (push) Successful in 33s
Docker Build and Push / build (push) Successful in 1m21s
Reviewed-on: #4
2026-06-08 17:28:48 -04:00
renovate f3897ba4b0 Update hadolint/hadolint-action action to v3.3.0
Docker Build and Push / lint (pull_request) Successful in 6s
Docker Build and Push / build (pull_request) Successful in 1m11s
Docker Build and Push / push (pull_request) Has been skipped
Docker Build and Push / test (pull_request) Successful in 21s
2026-06-08 20:51:57 +00:00
jcabillot 0386665e2a Merge pull request 'feat: add lint, build, test, push pipeline with SHA-pinned actions' (#3) from feat/gitea-actions-v2 into master
Docker Build and Push / lint (push) Successful in 10s
Docker Build and Push / test (push) Successful in 25s
Docker Build and Push / push (push) Successful in 23s
Docker Build and Push / build (push) Successful in 1m20s
Reviewed-on: #3
2026-06-08 16:47:23 -04:00
Sagent 4d33657ea1 fix: replace echo with printf to avoid SC2028
Docker Build and Push / lint (pull_request) Successful in 5s
Docker Build and Push / build (pull_request) Successful in 1m23s
Docker Build and Push / push (pull_request) Has been skipped
Docker Build and Push / test (pull_request) Successful in 22s
2026-06-08 20:40:51 +00:00
Sagent d9b462b6e8 fix: unquote EXPOSE to satisfy hadolint parser
Docker Build and Push / lint (pull_request) Failing after 8s
Docker Build and Push / build (pull_request) Successful in 1m22s
Docker Build and Push / push (pull_request) Has been skipped
Docker Build and Push / test (pull_request) Has been skipped
2026-06-08 19:53:15 +00:00
Sagent a1d6f90967 feat: add lint, build, test, push pipeline with SHA-pinned actions
Docker Build and Push / lint (pull_request) Failing after 9s
Docker Build and Push / build (pull_request) Successful in 2m7s
Docker Build and Push / push (pull_request) Has been skipped
Docker Build and Push / test (pull_request) Has been skipped
- Split single build job into 4 jobs: lint, build, test, push
- SHA-pin all actions for supply chain security
- Use ChristopherHX artifact actions (Gitea-compatible)
- Add tests/test.sh with Docker bridge gateway networking
- Add hadolint ignore for apt/brace patterns
2026-06-08 19:41:56 +00:00
jcabillot c065123d90 feat: add Gitea Actions workflow
Docker Build and Push / build (push) Successful in 1m1s
feat: add Gitea Actions workflow
2026-05-29 16:23:11 -04:00
10 changed files with 292 additions and 123 deletions

No files matched your search

+53
View File
@@ -0,0 +1,53 @@
name: Nightly Rebuild
on:
schedule:
- cron: '0 0 * * *'
jobs:
hadolint:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: hadolint/hadolint-action@06be81baf89a55ffd0e24b8f04a4185738dd3387 # v3.5.0
with:
dockerfile: Dockerfile
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4
- run: docker build -t ci-image:${{ github.sha }} .
- run: bash tests/test.sh ci-image:${{ github.sha }}
build-push:
needs: [test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
fetch-depth: 0
- uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4
- uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- id: get-latest-tag
run: |
TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
echo "tag=$TAG" >> $GITHUB_OUTPUT
- id: meta
uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6
with:
images: jcabillot/phpapache
tags: |
type=raw,value=${{ steps.get-latest-tag.outputs.tag }}-latest,enable=${{ steps.get-latest-tag.outputs.tag != '' }} type=raw,value=${{ steps.get-latest-tag.outputs.tag }}-latest,enable=${{ steps.get-latest-tag.outputs.tag != '' }}
- uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
pull: true
-46
View File
@@ -1,46 +0,0 @@
name: Docker Build and Push
on:
pull_request:
branches: [master]
push:
branches: [master]
schedule:
- cron: '0 0 * * *'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Login to Docker Hub
if: github.event_name != 'pull_request'
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker metadata
id: meta
uses: docker/metadata-action@v6
with:
images: jcabillot/phpapache
tags: |
#type=ref,event=branch
#type=ref,event=pr
#type=sha
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/master' }}
- name: Build and push
uses: docker/build-push-action@v7
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
pull: true
+49
View File
@@ -0,0 +1,49 @@
name: Main Release
on:
push:
branches: [master]
jobs:
hadolint:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: hadolint/hadolint-action@06be81baf89a55ffd0e24b8f04a4185738dd3387 # v3.5.0
with:
dockerfile: Dockerfile
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4
- run: docker build -t ci-image:${{ github.sha }} .
- run: bash tests/test.sh ci-image:${{ github.sha }}
build:
needs: [test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4
- run: docker build -t jcabillot/phpapache:${{ github.sha }} .
tag:
needs: [build]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
fetch-depth: 0
- name: Configure git auth
run: |
git remote set-url origin "https://x-access-token:${{ secrets.SA_TOKEN_ACTION_PUSH_TAGS }}@scm.cabillot.eu/web/phpapache.git"
- uses: anothrNick/github-tag-action@4ed44965e0db8dab2b466a16da04aec3cc312fd8 # v1.75.0
env:
GITHUB_TOKEN: ${{ secrets.SA_TOKEN_ACTION_PUSH_TAGS }}
DEFAULT_BUMP: patch
RELEASE_BRANCHES: master
WITH_V: true
GIT_API_TAGGING: false
+23
View File
@@ -0,0 +1,23 @@
name: PR Checks
on:
pull_request:
branches: [master]
jobs:
hadolint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: hadolint/hadolint-action@06be81baf89a55ffd0e24b8f04a4185738dd3387 # v3.5.0
continue-on-error: true
with:
dockerfile: Dockerfile
build-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4
- run: docker build -t ci-image:${{ github.sha }} .
- run: bash tests/test.sh ci-image:${{ github.sha }}
+12
View File
@@ -0,0 +1,12 @@
name: Renovate
on:
push:
branches:
- master
workflow_dispatch:
jobs:
renovate:
uses: perso/gitea-pipelines/.gitea/workflows/renovate.yaml@main
secrets: inherit
+67
View File
@@ -0,0 +1,67 @@
name: Tag Release
on:
push:
tags: ['*']
jobs:
hadolint:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: hadolint/hadolint-action@06be81baf89a55ffd0e24b8f04a4185738dd3387 # v3.5.0
with:
dockerfile: Dockerfile
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4
- run: docker build -t ci-image:${{ github.sha }} .
- run: bash tests/test.sh ci-image:${{ github.sha }}
build-push:
needs: [test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4
- uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- id: meta
uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6
with:
images: jcabillot/phpapache
tags: |
type=ref,event=tag
type=ref,event=tag,suffix=-latest
- uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
pull: true
trigger-renovate:
# The deployment repo perso_private/tf-depl-kubernetes pins this image; its
# Renovate instance only scans hourly, so this dispatch opens the image bump
# PR within minutes of the release instead of up to an hour later.
needs: [build-push]
runs-on: ubuntu-latest
steps:
- name: Trigger Renovate on perso_private/tf-depl-kubernetes
# needs: build-push — Renovate reads Docker Hub, so a scan started before
# the push lands would only see the previous release.
# RENOVATE_TOKEN is the org-level secret of this organisation.
run: |
curl -sS -f -X POST \
-u "renovate:${{ secrets.RENOVATE_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{{"ref":"main"}}' \
"https://scm.cabillot.eu/api/v1/repos/perso_private/tf-depl-kubernetes/actions/workflows/renovate.yaml/dispatches"
echo "Renovate dispatched on perso_private/tf-depl-kubernetes"
-33
View File
@@ -1,33 +0,0 @@
image: docker:latest
services:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
build-master:
stage: build
script:
- docker build --pull -t "$CI_REGISTRY_IMAGE" .
- docker push "$CI_REGISTRY_IMAGE"
only:
- master
build-master-arm64:
stage: build
tags:
- arm64
script:
- docker build --pull -t "$CI_REGISTRY_IMAGE:arm64" .
- docker push "$CI_REGISTRY_IMAGE:arm64"
only:
- master
build:
stage: build
script:
- docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" .
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG"
except:
- master
+6 -6
View File
@@ -1,11 +1,12 @@
FROM "php:8.3-apache"
FROM php:8.5-apache
LABEL maintainer="Julien Cabillot <dockerimages@cabillot.eu>"
# hadolint ignore=DL3008,DL3015,SC3009
RUN export DEBIAN_FRONTEND="noninteractive" && \
sed -i'' 's/ServerSignature On/ServerSignature Off/; s/ServerTokens OS/ServerTokens Prod/' "/etc/apache2/conf-enabled/security.conf" && \
sed -i'' 's/^Listen 80$/Listen 8080/' "/etc/apache2/ports.conf" && \
sed -i'' 's/^<VirtualHost \*:80>$/<VirtualHost *:8080>/' '/etc/apache2/sites-enabled/000-default.conf' && \
echo "RemoteIPHeader X-Forwarded-For\nRemoteIPProxiesHeader X-Forwarded-By\nRemoteIPInternalProxy 10.0.0.0/8\nRemoteIPInternalProxy 192.168.0.0/16\nRemoteIPInternalProxy 172.16.0.0/12" > "${APACHE_CONFDIR}/conf-available/remoteip.conf" && \
printf 'RemoteIPHeader X-Forwarded-For\nRemoteIPProxiesHeader X-Forwarded-By\nRemoteIPInternalProxy 10.0.0.0/8\nRemoteIPInternalProxy 192.168.0.0/16\nRemoteIPInternalProxy 172.16.0.0/12\n' > "${APACHE_CONFDIR}/conf-available/remoteip.conf" && \
sed -i'' 's/\(LogFormat "%h.*combined\)/LogFormat "%a %l %u %t \\"%r\\" %>s %O \\"%{Referer}i\\" \\"%{User-Agent}i\\"" combined/' "${APACHE_CONFDIR}/apache2.conf" && \
echo 'AddType video/mp4 .mp4' >> /etc/apache2/sites-enabled/000-default.conf && \
a2enconf remoteip && \
@@ -29,7 +30,7 @@ RUN export DEBIAN_FRONTEND="noninteractive" && \
s#^(\s*CustomLog)\s+\S+#\1 /proc/self/fd/1#g; \
s#^(\s*ErrorLog)\s+\S+#\1 /proc/self/fd/2#g; \
' "/etc/apache2/sites-enabled/000-default.conf" && \
echo "error_reporting=E_ALL\nerror_log=/proc/self/fd/2\nlog_errors=On\nexpose_php=Off" > "/usr/local/etc/php/conf.d/override.ini" && \
printf 'error_reporting=E_ALL\nerror_log=/proc/self/fd/2\nlog_errors=On\nexpose_php=Off\n' > "/usr/local/etc/php/conf.d/override.ini" && \
docker-php-ext-configure pcntl --enable-pcntl && \
docker-php-ext-install pcntl
@@ -39,8 +40,7 @@ CMD [ "docker-php-entrypoint", "apache2-foreground" ]
# C'est dommage mais il n'est pas possible de faire unexpose :
# https://github.com/moby/moby/issues/3465
EXPOSE "8080/tcp"
EXPOSE 8080/tcp
# TODO: à remettre une fois le bug corrigé
#HEALTHCHECK --interval="5s" \
# CMD curl --fail "http://localhost:8080" || exit 1
#HEALTHCHECK --interval=5s -- CMD curl --fail http://localhost:8080 || exit 1
Vendored
-38
View File
@@ -1,38 +0,0 @@
pipeline {
environment {
registry = 'https://registry.hub.docker.com'
registryCredential = 'dockerhub_jcabillot'
dockerImage = 'jcabillot/phpapache'
}
agent any
triggers {
cron('@midnight')
}
stages {
stage('Clone repository') {
steps{
checkout scm
}
}
stage('Build image') {
steps{
sh 'docker build --force-rm --no-cache --pull -t ${dockerImage} .'
}
}
stage('Deploy Image') {
steps{
script {
withCredentials([usernamePassword(credentialsId: 'dockerhub_jcabillot', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) {
sh 'docker login --username ${DOCKER_USER} --password ${DOCKER_PASS}'
sh 'docker push ${dockerImage}'
}
}
}
}
}
}
+82
View File
@@ -0,0 +1,82 @@
#!/usr/bin/env bash
set -euo pipefail
IMAGE="${1:?Usage: test.sh <image>}"
CONTAINER_NAME="test-$(echo "$IMAGE" | tr ':/' '-')-$$"
PASSED=0
FAILED=0
TOTAL=0
cleanup() {
docker rm -f "$CONTAINER_NAME" >/dev/null 2>&1 || true
}
trap cleanup EXIT
assert() {
local name="$1" expected="$2" actual="$3"
TOTAL=$((TOTAL + 1))
if [ "$expected" = "$actual" ]; then
echo " PASS: $name"
PASSED=$((PASSED + 1))
else
echo " FAIL: $name (expected: '$expected', got: '$actual')"
FAILED=$((FAILED + 1))
fi
}
assert_in() {
local name="$1" expected="$2" actual="$3"
TOTAL=$((TOTAL + 1))
if [ "$actual" -ge "$expected" ] && [ "$actual" -lt 500 ]; then
echo " PASS: $name (got: $actual)"
PASSED=$((PASSED + 1))
else
echo " FAIL: $name (expected < 500, got: $actual)"
FAILED=$((FAILED + 1))
fi
}
assert_match() {
local name="$1" pattern="$2" actual="$3"
TOTAL=$((TOTAL + 1))
if echo "$actual" | grep -qE "$pattern"; then
echo " PASS: $name"
PASSED=$((PASSED + 1))
else
echo " FAIL: $name (pattern: '$pattern', got: '$actual')"
FAILED=$((FAILED + 1))
fi
}
echo "Running container: $IMAGE"
docker run -d --name "$CONTAINER_NAME" -p 8080:8080 "$IMAGE" >/dev/null
DOCKER_GW=$(docker network inspect bridge --format '{{range .IPAM.Config}}{{.Gateway}}{{end}}')
BASE_URL="http://${DOCKER_GW}:8080"
echo "Waiting for container on ${DOCKER_GW}:8080..."
for i in $(seq 1 30); do
if curl -sf -o /dev/null "$BASE_URL/" 2>/dev/null || [ "$(curl -s -o /dev/null -w '%{http_code}' "$BASE_URL/" 2>/dev/null)" != "000" ]; then
echo "Container ready after ${i}s"
break
fi
if [ "$i" -eq 30 ]; then
echo "FAIL: Container did not become ready within 30s"
docker logs "$CONTAINER_NAME"
exit 1
fi
sleep 1
done
echo ""
echo "Test: GET / (Apache responds on port 8080)"
RESPONSE=$(curl -s -D - "$BASE_URL/")
STATUS=$(echo "$RESPONSE" | head -1 | grep -oP '\d{3}')
SERVER=$(echo "$RESPONSE" | grep -i '^server:' | tr -d '\r' | cut -d: -f2- | xargs)
assert_in "HTTP status is valid" 200 "$STATUS"
assert_match "Server is Apache" "[Aa]pache" "$SERVER"
echo ""
echo "Results: $PASSED/$TOTAL passed, $FAILED failed"
[ "$FAILED" -eq 0 ]