{"sha":"53619c9d7565411141d0e27887bfa424414eb038","node_id":"C_kwDOCUrhr9oAKDUzNjE5YzlkNzU2NTQxMTE0MWQwZTI3ODg3YmZhNDI0NDE0ZWIwMzg","commit":{"author":{"name":"Nicolas Borboën","email":"ponsfrilus@gmail.com","date":"2026-04-15T17:41:11Z"},"committer":{"name":"rosamaggi","email":"95354173+rosamaggi@users.noreply.github.com","date":"2026-04-29T09:18:26Z"},"message":"[feature] Instrument the build and the redeployment of WP-Clinic","tree":{"sha":"031676d03e27e6a757529fab776d24be7c13fcfb","url":"https://api.github.com/repos/epfl-si/wp-ops/git/trees/031676d03e27e6a757529fab776d24be7c13fcfb"},"url":"https://api.github.com/repos/epfl-si/wp-ops/git/commits/53619c9d7565411141d0e27887bfa424414eb038","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/epfl-si/wp-ops/commits/53619c9d7565411141d0e27887bfa424414eb038","html_url":"https://github.com/epfl-si/wp-ops/commit/53619c9d7565411141d0e27887bfa424414eb038","comments_url":"https://api.github.com/repos/epfl-si/wp-ops/commits/53619c9d7565411141d0e27887bfa424414eb038/comments","author":{"login":"ponsfrilus","id":176002,"node_id":"MDQ6VXNlcjE3NjAwMg==","avatar_url":"https://avatars.githubusercontent.com/u/176002?v=4","gravatar_id":"","url":"https://api.github.com/users/ponsfrilus","html_url":"https://github.com/ponsfrilus","followers_url":"https://api.github.com/users/ponsfrilus/followers","following_url":"https://api.github.com/users/ponsfrilus/following{/other_user}","gists_url":"https://api.github.com/users/ponsfrilus/gists{/gist_id}","starred_url":"https://api.github.com/users/ponsfrilus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ponsfrilus/subscriptions","organizations_url":"https://api.github.com/users/ponsfrilus/orgs","repos_url":"https://api.github.com/users/ponsfrilus/repos","events_url":"https://api.github.com/users/ponsfrilus/events{/privacy}","received_events_url":"https://api.github.com/users/ponsfrilus/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"rosamaggi","id":95354173,"node_id":"U_kgDOBa79PQ","avatar_url":"https://avatars.githubusercontent.com/u/95354173?v=4","gravatar_id":"","url":"https://api.github.com/users/rosamaggi","html_url":"https://github.com/rosamaggi","followers_url":"https://api.github.com/users/rosamaggi/followers","following_url":"https://api.github.com/users/rosamaggi/following{/other_user}","gists_url":"https://api.github.com/users/rosamaggi/gists{/gist_id}","starred_url":"https://api.github.com/users/rosamaggi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rosamaggi/subscriptions","organizations_url":"https://api.github.com/users/rosamaggi/orgs","repos_url":"https://api.github.com/users/rosamaggi/repos","events_url":"https://api.github.com/users/rosamaggi/events{/privacy}","received_events_url":"https://api.github.com/users/rosamaggi/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"31295423245e5f042edee92416b1dde7f3839cbc","url":"https://api.github.com/repos/epfl-si/wp-ops/commits/31295423245e5f042edee92416b1dde7f3839cbc","html_url":"https://github.com/epfl-si/wp-ops/commit/31295423245e5f042edee92416b1dde7f3839cbc"}],"stats":{"total":53,"additions":44,"deletions":9},"files":[{"sha":"92fbcc38c732463eaf2678f783ad79dad2fbadc9","filename":"ansible/roles/wordpress-builds/tasks/_buildconfig.yml","status":"modified","additions":18,"deletions":4,"changes":22,"blob_url":"https://github.com/epfl-si/wp-ops/blob/53619c9d7565411141d0e27887bfa424414eb038/ansible%2Froles%2Fwordpress-builds%2Ftasks%2F_buildconfig.yml","raw_url":"https://github.com/epfl-si/wp-ops/raw/53619c9d7565411141d0e27887bfa424414eb038/ansible%2Froles%2Fwordpress-builds%2Ftasks%2F_buildconfig.yml","contents_url":"https://api.github.com/repos/epfl-si/wp-ops/contents/ansible%2Froles%2Fwordpress-builds%2Ftasks%2F_buildconfig.yml?ref=53619c9d7565411141d0e27887bfa424414eb038","patch":"@@ -15,7 +15,7 @@\n #  - buildconfig_description\n #        The image description visible in the Quay UI\n #\n-#  - buildconfig_base             (mandatory)\n+#  - buildconfig_base\n #        The image to use as the base, i.e. substitute the first `FROM` line\n #        in the Dockerfile with.\n #\n@@ -25,6 +25,13 @@\n #  - buildconfig_rebuild_tags\n #        One or more tags that should force a rebuild of the image when\n #        present\n+#\n+#  - buildconfig_args\n+#        The value for buildconfig.spec.strategy.dockerStrategy.buildArgs\n+#\n+#  - buildconfig_register_built\n+#        The variable to set if the image is rebuilt\n+#\n \n - tags: always\n   include_vars: \"{{ item }}\"\n@@ -69,9 +76,11 @@\n         strategy:\n           type: Docker\n           dockerStrategy:\n-            from:   # Override the Dockerfile's `FROM` line\n-              kind: DockerImage\n-              name: \"{{ buildconfig_base }}\"\n+            from: >-\n+              {{ { \"kind\": \"DockerImage\", \"name\": buildconfig_base }\n+              if buildconfig_base is defined \n+              else None }}\n+            buildArgs: \"{{ buildconfig_args | default([]) }}\"\n         output:\n           to:\n             kind: DockerImage\n@@ -87,6 +96,7 @@\n             memory: \"256Mi\"\n \n - name: Build {{ buildconfig_name }} now\n+  register: _buildconfig_built\n   tags: \"{{ buildconfig_rebuild_tags | default([]) }}\"\n   when: >-\n     (_buildconfig_buildconfig | default({}) is changed)\n@@ -104,3 +114,7 @@\n       {{ ((_buildconfig_rebuild_tags + ansible_run_tags) | count)\n       != (dict.fromkeys(_buildconfig_rebuild_tags + ansible_run_tags) | count)\n       }}\n+\n+- when: buildconfig_register_built is defined\n+  set_fact: >-\n+    {{ { buildconfig_register_built: _buildconfig_built } }}"},{"sha":"b27d7242258cd055c94e347e0688b94a8f6824aa","filename":"ansible/roles/wordpress-builds/tasks/clinic.yml","status":"modified","additions":4,"deletions":1,"changes":5,"blob_url":"https://github.com/epfl-si/wp-ops/blob/53619c9d7565411141d0e27887bfa424414eb038/ansible%2Froles%2Fwordpress-builds%2Ftasks%2Fclinic.yml","raw_url":"https://github.com/epfl-si/wp-ops/raw/53619c9d7565411141d0e27887bfa424414eb038/ansible%2Froles%2Fwordpress-builds%2Ftasks%2Fclinic.yml","contents_url":"https://api.github.com/repos/epfl-si/wp-ops/contents/ansible%2Froles%2Fwordpress-builds%2Ftasks%2Fclinic.yml?ref=53619c9d7565411141d0e27887bfa424414eb038","patch":"@@ -18,11 +18,14 @@\n   vars:\n     buildconfig_name: clinic\n     buildconfig_description: Image with git, jq, bash etc. for build-related tasks\n-    buildconfig_base: \"{{ ansible_quay_hostname }}/{{ quay_organization }}/wp-php:{{ nginx_deployment_images_tag }}\"\n+    buildconfig_args:\n+    - name: WP_PHP_IMAGE_VERSION\n+      value: \"{{ nginx_deployment_images_tag }}\"\n     buildconfig_source:\n       type: Git\n       git:\n         uri: https://github.com/epfl-si/wp-clinic\n+    buildconfig_register_built: build_clinic\n     buildconfig_rebuild_tags:\n     - wp.build.clinic.rebuild\n     - wp.clinic.rebuild"},{"sha":"cc6b40d80f4cdc187ecfbcf887cf7e14b37de83b","filename":"ansible/roles/wordpress-builds/tasks/main.yml","status":"modified","additions":2,"deletions":2,"changes":4,"blob_url":"https://github.com/epfl-si/wp-ops/blob/53619c9d7565411141d0e27887bfa424414eb038/ansible%2Froles%2Fwordpress-builds%2Ftasks%2Fmain.yml","raw_url":"https://github.com/epfl-si/wp-ops/raw/53619c9d7565411141d0e27887bfa424414eb038/ansible%2Froles%2Fwordpress-builds%2Ftasks%2Fmain.yml","contents_url":"https://api.github.com/repos/epfl-si/wp-ops/contents/ansible%2Froles%2Fwordpress-builds%2Ftasks%2Fmain.yml?ref=53619c9d7565411141d0e27887bfa424414eb038","patch":"@@ -31,10 +31,10 @@\n       - wp.clinic\n   tags:\n     - wp.build\n-    - wp.clinic\n     - wp.build.clinic\n-    - wp.clinic.rebuild\n     - wp.build.clinic.rebuild\n+    - wp.clinic\n+    - wp.clinic.rebuild\n \n - name: wp-base/Tekton\n   include_tasks:"},{"sha":"b892fb41cfe3a2e02a2869ab8c000a451dd5d3b4","filename":"ansible/roles/wordpress-namespace/tasks/clinic.yml","status":"modified","additions":19,"deletions":2,"changes":21,"blob_url":"https://github.com/epfl-si/wp-ops/blob/53619c9d7565411141d0e27887bfa424414eb038/ansible%2Froles%2Fwordpress-namespace%2Ftasks%2Fclinic.yml","raw_url":"https://github.com/epfl-si/wp-ops/raw/53619c9d7565411141d0e27887bfa424414eb038/ansible%2Froles%2Fwordpress-namespace%2Ftasks%2Fclinic.yml","contents_url":"https://api.github.com/repos/epfl-si/wp-ops/contents/ansible%2Froles%2Fwordpress-namespace%2Ftasks%2Fclinic.yml?ref=53619c9d7565411141d0e27887bfa424414eb038","patch":"@@ -26,8 +26,24 @@\n                       replicas=1\n                       ))\n         | from_yaml }}\n+  register: deployment_clinic\n \n-- name: \"Services/wp-clinic\"\n+- name: Redeploy wp-clinic\n+  tags: always  # but see below with wp.clinic.restart\n+  when: >-\n+    (\n+      (build_clinic | default({}) is changed)\n+      and not\n+      (deployment_clinic | default({}) is changed)\n+    )\n+    or (\"wp.clinic.restart\" in ansible_run_tags)\n+  shell:\n+    cmd: |\n+      set -e -x\n+      export KUBECONFIG=$K8S_AUTH_KUBECONFIG\n+      kubectl -n {{ inventory_namespace }} rollout restart deploy/wp-clinic\n+\n+- name: Service/wp-clinic\n   kubernetes.core.k8s:\n     state: present\n     definition:\n@@ -50,7 +66,8 @@\n           app: wp-clinic\n         type: ClusterIP\n \n-- name: \"Routes/wp-clinic\"\n+- name: Route/wp-clinic\n+  when: wp_clinic_url is defined\n   kubernetes.core.k8s:\n     definition:\n       apiVersion: v1"},{"sha":"f229cca326eb54641220e7e31d2a381018b77c82","filename":"ansible/roles/wordpress-namespace/tasks/main.yml","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/epfl-si/wp-ops/blob/53619c9d7565411141d0e27887bfa424414eb038/ansible%2Froles%2Fwordpress-namespace%2Ftasks%2Fmain.yml","raw_url":"https://github.com/epfl-si/wp-ops/raw/53619c9d7565411141d0e27887bfa424414eb038/ansible%2Froles%2Fwordpress-namespace%2Ftasks%2Fmain.yml","contents_url":"https://api.github.com/repos/epfl-si/wp-ops/contents/ansible%2Froles%2Fwordpress-namespace%2Ftasks%2Fmain.yml?ref=53619c9d7565411141d0e27887bfa424414eb038","patch":"@@ -258,3 +258,4 @@\n   tags:\n     - wp\n     - wp.clinic\n+    - wp.clinic.restart"}]}