From 4e4a31648110a23c426892efc801a69ef1025781 Mon Sep 17 00:00:00 2001 From: Tristan Chuine Date: Thu, 3 Oct 2024 01:05:05 +0200 Subject: [PATCH 1/5] Add checks on Docker and k8s configs --- .github/workflows/docker.yml | 78 ++++++++++++++++++++++++++++++++++++ .github/workflows/k8s.yml | 52 ++++++++++++++++++++++++ 2 files changed, 130 insertions(+) create mode 100644 .github/workflows/docker.yml create mode 100644 .github/workflows/k8s.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 00000000..981310a3 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,78 @@ +name: CI Docker + +on: + push: + branches: + - 'main' + tags: + - 'v[0-9]+' + pull_request: + #paths: + # - docker-compose/* + +jobs: + verify_docker: + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./docker-compose + steps: + - id: checkout + name: Checkout sources + uses: actions/checkout@v4 + with: + sparse-checkout: | + .github + k8s + #- name: Install buildx + # uses: docker/setup-buildx-action@v3 + # with: + # version: v0.9.1 # Buildx version + - name: mkdir + run: mkdir ./build + - name: Debug version + run: docker version --format '{{json .}}' | jq | tee ./build/docker_version.json + - name: List Docker compose profiles + working-directory: docker-compose/explicit-profiles + run: docker compose config --profiles | tee ../build/docker-compose-profiles.txt + - name: List Docker compose environment + working-directory: docker-compose/explicit-profiles + run: docker compose config --environment | tee ../build/docker-compose-environment.yml + - name: List Docker compose variables + working-directory: docker-compose/explicit-profiles + run: docker compose config --variables | tee ../build/docker-compose-variables.yml + - name: List Docker compose volumes + working-directory: docker-compose/explicit-profiles + run: docker compose config --volumes | tee ../build/docker-compose-volumes.txt + - name: List Docker compose services + working-directory: docker-compose/explicit-profiles + run: docker compose --profile all config --services | tee ../build/docker-compose-services.txt + - name: Build Docker compose for no profile + working-directory: docker-compose/explicit-profiles + run: docker compose config --output ../build/docker-compose.yml + - name: Build Docker compose for each profiles + working-directory: docker-compose/explicit-profiles + run: docker compose config --profiles | xargs -t -L 1 -I{} docker compose --profile {} config --output ../build/docker-compose.{}.yml + - name: Build old docker-compose dynamic-mapping + working-directory: docker-compose/dynamic-mapping + run: docker compose config --output ../build/dynamic-mapping.yml + - name: Build old docker-compose merging + working-directory: docker-compose/merging + run: docker compose config --output ../build/merging.yml + - name: Build old docker-compose study + working-directory: docker-compose/study + run: docker compose config --output ../build/study.yml + - name: Build old docker-compose suite + working-directory: docker-compose/suite + run: docker compose config --output ../build/suite.yml + - name: Build old docker-compose technical + working-directory: docker-compose/technical + run: docker compose config --output ../build/technical.yml + - id: upload-artifacts + name: Save builds + uses: actions/upload-artifact@v4 + with: + name: docker + path: build/* + compression-level: 9 + if-no-files-found: error diff --git a/.github/workflows/k8s.yml b/.github/workflows/k8s.yml new file mode 100644 index 00000000..88212849 --- /dev/null +++ b/.github/workflows/k8s.yml @@ -0,0 +1,52 @@ +name: CI k8s + +on: + push: + branches: + - 'main' + tags: + - 'v[0-9]+' + pull_request: + #paths: + # - k8s/* + +jobs: + verify_docker: + runs-on: ubuntu-latest + steps: + - id: install + name: Set up kubectl + uses: azure/setup-kubectl@v4 + with: + version: latest + - id: checkout + name: Checkout sources + uses: actions/checkout@v4 + with: + sparse-checkout: | + .github + k8s + - name: mkdir + run: mkdir ./build + - name: Debug version + run: kubectl version --client=true --output=json | tee ./build/kubectl_version.json + - id: bake-local + name: Bake manifest of local + #uses: azure/k8s-bake@v3 + run: kubectl kustomize ./k8s/live/local/ -o build/k8s-local.yml + - id: bake-azure-dev + name: Bake manifest of azure-dev + run: kubectl kustomize ./k8s/live/azure-dev/ -o build/k8s-azure-dev.yml + - id: bake-azure-integ + name: Bake manifest of azure-integ + run: kubectl kustomize ./k8s/live/azure-integ/ -o build/k8s-azure-integ.yml + - id: upload-artifacts + name: Save builds + uses: actions/upload-artifact@v4 + with: + name: kustomize + path: | + build/kubectl_version.json + build/k8s-*.yml + compression-level: 9 + if-no-files-found: error From 75f410a4860c55bd82b149a30250d5f2d782d765 Mon Sep 17 00:00:00 2001 From: Tristan Chuine Date: Thu, 3 Oct 2024 01:22:19 +0200 Subject: [PATCH 2/5] fix Docker CI --- .github/workflows/docker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 981310a3..7adc1956 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest defaults: run: - working-directory: ./docker-compose + working-directory: docker-compose steps: - id: checkout name: Checkout sources @@ -23,7 +23,7 @@ jobs: with: sparse-checkout: | .github - k8s + docker-compose #- name: Install buildx # uses: docker/setup-buildx-action@v3 # with: From fb6cc068841a9d878cbec0cb671cbccfeaddbbbf Mon Sep 17 00:00:00 2001 From: Tristan Chuine Date: Thu, 3 Oct 2024 01:33:29 +0200 Subject: [PATCH 3/5] fix artifacts upload --- .github/workflows/docker.yml | 4 ++-- .github/workflows/k8s.yml | 30 ++++++++++++++++++++++-------- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 7adc1956..2573c537 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -72,7 +72,7 @@ jobs: name: Save builds uses: actions/upload-artifact@v4 with: - name: docker - path: build/* + name: docker_builds + path: docker-compose/build/* compression-level: 9 if-no-files-found: error diff --git a/.github/workflows/k8s.yml b/.github/workflows/k8s.yml index 88212849..d866a515 100644 --- a/.github/workflows/k8s.yml +++ b/.github/workflows/k8s.yml @@ -29,24 +29,38 @@ jobs: - name: mkdir run: mkdir ./build - name: Debug version - run: kubectl version --client=true --output=json | tee ./build/kubectl_version.json + run: kubectl version --client=true --output=json - id: bake-local name: Bake manifest of local #uses: azure/k8s-bake@v3 run: kubectl kustomize ./k8s/live/local/ -o build/k8s-local.yml + - id: upload-artifact-local + name: Save build local + uses: actions/upload-artifact@v4 + with: + name: k8s-local.yml + path: build/k8s-local.yml + compression-level: 0 + if-no-files-found: error - id: bake-azure-dev name: Bake manifest of azure-dev run: kubectl kustomize ./k8s/live/azure-dev/ -o build/k8s-azure-dev.yml + - id: upload-artifact-azure-dev + name: Save build azure-dev + uses: actions/upload-artifact@v4 + with: + name: azure-dev.yml + path: build/k8s-azure-dev.yml + compression-level: 0 + if-no-files-found: error - id: bake-azure-integ name: Bake manifest of azure-integ run: kubectl kustomize ./k8s/live/azure-integ/ -o build/k8s-azure-integ.yml - - id: upload-artifacts - name: Save builds + - id: upload-artifact-azure-integ + name: Save build integ uses: actions/upload-artifact@v4 with: - name: kustomize - path: | - build/kubectl_version.json - build/k8s-*.yml - compression-level: 9 + name: azure-integ.yml + path: build/k8s-azure-integ.yml + compression-level: 0 if-no-files-found: error From aefb43fd8081479a4e5d75db0e876d51ee591e0a Mon Sep 17 00:00:00 2001 From: Tristan Chuine Date: Thu, 3 Oct 2024 01:58:14 +0200 Subject: [PATCH 4/5] fix --- .github/workflows/docker.yml | 3 +++ .github/workflows/k8s.yml | 32 +++++++++----------------------- 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 2573c537..c2e30659 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -10,6 +10,9 @@ on: #paths: # - docker-compose/* +env: + GRIDSUITE_DATABASES: /tmp/gs_db + jobs: verify_docker: runs-on: ubuntu-latest diff --git a/.github/workflows/k8s.yml b/.github/workflows/k8s.yml index d866a515..9e729d25 100644 --- a/.github/workflows/k8s.yml +++ b/.github/workflows/k8s.yml @@ -11,7 +11,7 @@ on: # - k8s/* jobs: - verify_docker: + verify_k8s: runs-on: ubuntu-latest steps: - id: install @@ -29,38 +29,24 @@ jobs: - name: mkdir run: mkdir ./build - name: Debug version - run: kubectl version --client=true --output=json + run: kubectl version --client=true --output=json | tee ./build/kubectl_version.json - id: bake-local name: Bake manifest of local #uses: azure/k8s-bake@v3 run: kubectl kustomize ./k8s/live/local/ -o build/k8s-local.yml - - id: upload-artifact-local - name: Save build local - uses: actions/upload-artifact@v4 - with: - name: k8s-local.yml - path: build/k8s-local.yml - compression-level: 0 - if-no-files-found: error - id: bake-azure-dev name: Bake manifest of azure-dev run: kubectl kustomize ./k8s/live/azure-dev/ -o build/k8s-azure-dev.yml - - id: upload-artifact-azure-dev - name: Save build azure-dev - uses: actions/upload-artifact@v4 - with: - name: azure-dev.yml - path: build/k8s-azure-dev.yml - compression-level: 0 - if-no-files-found: error - id: bake-azure-integ name: Bake manifest of azure-integ run: kubectl kustomize ./k8s/live/azure-integ/ -o build/k8s-azure-integ.yml - - id: upload-artifact-azure-integ - name: Save build integ + # https://github.com/actions/upload-artifact/issues/3#issuecomment-620722206 + # Until k8s not let us download files undividually, we upload all builds in one go + - id: upload-artifacts + name: Save builds uses: actions/upload-artifact@v4 with: - name: azure-integ.yml - path: build/k8s-azure-integ.yml - compression-level: 0 + name: kustomize_builds + path: build/* + compression-level: 9 if-no-files-found: error From 693dd7a4dc63d9da3ff0780798fcca000ad9d371 Mon Sep 17 00:00:00 2001 From: Tristan Chuine Date: Thu, 3 Oct 2024 02:38:46 +0200 Subject: [PATCH 5/5] activate paths filter --- .github/workflows/docker.yml | 11 ++++++++--- .github/workflows/k8s.yml | 6 +++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index c2e30659..bd006cbe 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -7,8 +7,9 @@ on: tags: - 'v[0-9]+' pull_request: - #paths: - # - docker-compose/* + paths: + - docker-compose/** + - k8s/resources/**/config/** env: GRIDSUITE_DATABASES: /tmp/gs_db @@ -27,12 +28,13 @@ jobs: sparse-checkout: | .github docker-compose + k8s #- name: Install buildx # uses: docker/setup-buildx-action@v3 # with: # version: v0.9.1 # Buildx version - name: mkdir - run: mkdir ./build + run: mkdir -v ./build - name: Debug version run: docker version --format '{{json .}}' | jq | tee ./build/docker_version.json - name: List Docker compose profiles @@ -56,6 +58,9 @@ jobs: - name: Build Docker compose for each profiles working-directory: docker-compose/explicit-profiles run: docker compose config --profiles | xargs -t -L 1 -I{} docker compose --profile {} config --output ../build/docker-compose.{}.yml + #- name: Verify Docker compose images + # working-directory: docker-compose/explicit-profiles + # run: docker compose --profile all config --resolve-image-digests --output ../build/docker-compose_digest.yml - name: Build old docker-compose dynamic-mapping working-directory: docker-compose/dynamic-mapping run: docker compose config --output ../build/dynamic-mapping.yml diff --git a/.github/workflows/k8s.yml b/.github/workflows/k8s.yml index 9e729d25..970f94f3 100644 --- a/.github/workflows/k8s.yml +++ b/.github/workflows/k8s.yml @@ -7,8 +7,8 @@ on: tags: - 'v[0-9]+' pull_request: - #paths: - # - k8s/* + paths: + - k8s/** jobs: verify_k8s: @@ -27,7 +27,7 @@ jobs: .github k8s - name: mkdir - run: mkdir ./build + run: mkdir -v ./build - name: Debug version run: kubectl version --client=true --output=json | tee ./build/kubectl_version.json - id: bake-local