From 244606a1cd92930b866f837594a35564e047aca3 Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Sun, 16 Oct 2022 16:08:38 +0200 Subject: [PATCH 01/11] Small CI for openapi2jsonschema, publish docker image --- .github/workflows/main.yml | 10 ------- .github/workflows/openapi2jsonschema.yml | 34 ++++++++++++++++++++++++ scripts/Dockerfile | 14 ++++++++++ scripts/Makefile | 5 +++- 4 files changed, 52 insertions(+), 11 deletions(-) create mode 100644 .github/workflows/openapi2jsonschema.yml create mode 100644 scripts/Dockerfile diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0af1c77..3bfd3c1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,16 +16,6 @@ jobs: - name: acceptance-test run: make docker-acceptance - openapi2jsonschema-test: - runs-on: ubuntu-latest - steps: - - name: checkout - uses: actions/checkout@v2 - - - name: test - working-directory: ./scripts - run: make docker-test docker-acceptance - goreleaser: runs-on: ubuntu-latest needs: diff --git a/.github/workflows/openapi2jsonschema.yml b/.github/workflows/openapi2jsonschema.yml new file mode 100644 index 0000000..a07be10 --- /dev/null +++ b/.github/workflows/openapi2jsonschema.yml @@ -0,0 +1,34 @@ +name: ci +on: + push: + paths: + - scripts/** + +env: + REGISTRY: ghcr.io + IMAGE_NAME: openapi2jsonschema + +jobs: + openapi2jsonschema: + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v2 + + - name: test + working-directory: ./scripts + run: make docker-test docker-acceptance + + - name: Log in to the Container registry + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + with: + context: ./scripts + push: true + tags: latest diff --git a/scripts/Dockerfile b/scripts/Dockerfile new file mode 100644 index 0000000..8788193 --- /dev/null +++ b/scripts/Dockerfile @@ -0,0 +1,14 @@ +FROM python:3.9.15-alpine3.16 +LABEL org.opencontainers.image.authors="Various contributors" \ + org.opencontainers.image.source="https://github.com/yannh/kubeconform/tree/master/scripts" \ + org.opencontainers.image.description="Convert OpenAPI CRD to JSON Schema" \ + org.opencontainers.image.licenses="Apache License 2.0" \ + org.opencontainers.image.title="kubeconform" \ + org.opencontainers.image.url="https://github.com/yannh/kubeconform/" +MAINTAINER Yann HAMON +ENV FILENAME_FORMAT='{kind}-{group}-{version}' + +COPY openapi2jsonschema.py / +RUN pip install pyyaml + +ENTRYPOINT ["/openapi2jsonschema"] diff --git a/scripts/Makefile b/scripts/Makefile index bc09616..49ba2b6 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -1,6 +1,6 @@ #!/usr/bin/make -f -# This is really early days +.PHONY: test build-python-bats docker-test docker-acceptance build-image test: build-python-bats docker-test docker-acceptance @@ -12,3 +12,6 @@ docker-test: build-python-bats docker-acceptance: build-python-bats docker run --entrypoint "/usr/bin/bats" -t python-bats /code/acceptance.bats + +build-image: docker-test docker-acceptance + docker build -t openapi2jsonschema -f Dockerfile . From 3aa09646b63f3d8090fb1d899c3029ece5a76ef2 Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Sun, 16 Oct 2022 16:16:38 +0200 Subject: [PATCH 02/11] Small CI for openapi2jsonschema, publish docker image --- .github/workflows/openapi2jsonschema.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/openapi2jsonschema.yml b/.github/workflows/openapi2jsonschema.yml index a07be10..36ff79a 100644 --- a/.github/workflows/openapi2jsonschema.yml +++ b/.github/workflows/openapi2jsonschema.yml @@ -19,6 +19,7 @@ jobs: working-directory: ./scripts run: make docker-test docker-acceptance + # https://docs.github.com/en/actions/publishing-packages/publishing-docker-images - name: Log in to the Container registry uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 with: @@ -26,6 +27,12 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + - name: Build and push Docker image uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc with: From 7d1608bde0cb548cbe14b42d9b3acde8f57800e3 Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Sun, 16 Oct 2022 16:17:09 +0200 Subject: [PATCH 03/11] Small CI for openapi2jsonschema, publish docker image --- .github/workflows/openapi2jsonschema.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/openapi2jsonschema.yml b/.github/workflows/openapi2jsonschema.yml index 36ff79a..95ad8f9 100644 --- a/.github/workflows/openapi2jsonschema.yml +++ b/.github/workflows/openapi2jsonschema.yml @@ -19,7 +19,6 @@ jobs: working-directory: ./scripts run: make docker-test docker-acceptance - # https://docs.github.com/en/actions/publishing-packages/publishing-docker-images - name: Log in to the Container registry uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 with: From 11e4f37190d1fc4c0f1b3782d39a02266f7818d9 Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Sun, 16 Oct 2022 16:17:50 +0200 Subject: [PATCH 04/11] Small CI for openapi2jsonschema, publish docker image --- .github/workflows/main.yml | 1 - .github/workflows/openapi2jsonschema.yml | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3bfd3c1..6b45300 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,7 +20,6 @@ jobs: runs-on: ubuntu-latest needs: - kubeconform-test - - openapi2jsonschema-test if: startsWith(github.ref, 'refs/tags/v') steps: - name: checkout diff --git a/.github/workflows/openapi2jsonschema.yml b/.github/workflows/openapi2jsonschema.yml index 95ad8f9..36ff79a 100644 --- a/.github/workflows/openapi2jsonschema.yml +++ b/.github/workflows/openapi2jsonschema.yml @@ -19,6 +19,7 @@ jobs: working-directory: ./scripts run: make docker-test docker-acceptance + # https://docs.github.com/en/actions/publishing-packages/publishing-docker-images - name: Log in to the Container registry uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 with: From 40f96960c6d4febba7e375291c65ece1154fea48 Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Sun, 16 Oct 2022 16:18:52 +0200 Subject: [PATCH 05/11] Small CI for openapi2jsonschema, publish docker image --- .github/workflows/openapi2jsonschema.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/openapi2jsonschema.yml b/.github/workflows/openapi2jsonschema.yml index 36ff79a..b7cd963 100644 --- a/.github/workflows/openapi2jsonschema.yml +++ b/.github/workflows/openapi2jsonschema.yml @@ -1,8 +1,5 @@ name: ci -on: - push: - paths: - - scripts/** +on: push env: REGISTRY: ghcr.io From 9bb665fb414c4ea3c111a5e9a9fe10e88616d0c5 Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Sun, 16 Oct 2022 16:19:58 +0200 Subject: [PATCH 06/11] Small CI for openapi2jsonschema, publish docker image --- .github/workflows/main.yml | 2 +- .github/workflows/openapi2jsonschema.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6b45300..c22ecb7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,4 +1,4 @@ -name: ci +name: kubeconform on: push jobs: kubeconform-test: diff --git a/.github/workflows/openapi2jsonschema.yml b/.github/workflows/openapi2jsonschema.yml index b7cd963..d1adb01 100644 --- a/.github/workflows/openapi2jsonschema.yml +++ b/.github/workflows/openapi2jsonschema.yml @@ -1,4 +1,4 @@ -name: ci +name: openapi2jsonschema on: push env: From 129ffaeef161961df735831565453d51c0fdb2c9 Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Sun, 16 Oct 2022 16:21:37 +0200 Subject: [PATCH 07/11] Small CI for openapi2jsonschema, publish docker image --- .github/workflows/openapi2jsonschema.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/openapi2jsonschema.yml b/.github/workflows/openapi2jsonschema.yml index d1adb01..fbe56eb 100644 --- a/.github/workflows/openapi2jsonschema.yml +++ b/.github/workflows/openapi2jsonschema.yml @@ -34,5 +34,5 @@ jobs: uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc with: context: ./scripts - push: true - tags: latest + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} From 3aba16288000e37cce1b6b5a16ddee66168ce4b6 Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Sun, 16 Oct 2022 16:33:48 +0200 Subject: [PATCH 08/11] Small CI for openapi2jsonschema, publish docker image --- .github/workflows/openapi2jsonschema.yml | 15 ++++++--------- scripts/Dockerfile | 4 ++-- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/.github/workflows/openapi2jsonschema.yml b/.github/workflows/openapi2jsonschema.yml index fbe56eb..0620c39 100644 --- a/.github/workflows/openapi2jsonschema.yml +++ b/.github/workflows/openapi2jsonschema.yml @@ -16,6 +16,9 @@ jobs: working-directory: ./scripts run: make docker-test docker-acceptance + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + # https://docs.github.com/en/actions/publishing-packages/publishing-docker-images - name: Log in to the Container registry uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 @@ -24,15 +27,9 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - - name: Build and push Docker image uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc with: - context: ./scripts - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} + context: "{{defaultContext}}:scripts" + push: true + tags: "openapi2jsonschema:latest" diff --git a/scripts/Dockerfile b/scripts/Dockerfile index 8788193..c74086c 100644 --- a/scripts/Dockerfile +++ b/scripts/Dockerfile @@ -3,8 +3,8 @@ LABEL org.opencontainers.image.authors="Various contributors" \ org.opencontainers.image.source="https://github.com/yannh/kubeconform/tree/master/scripts" \ org.opencontainers.image.description="Convert OpenAPI CRD to JSON Schema" \ org.opencontainers.image.licenses="Apache License 2.0" \ - org.opencontainers.image.title="kubeconform" \ - org.opencontainers.image.url="https://github.com/yannh/kubeconform/" + org.opencontainers.image.title="openapi2jsonschema" \ + org.opencontainers.image.url="https://github.com/yannh/kubeconform/tree/master/scripts/" MAINTAINER Yann HAMON ENV FILENAME_FORMAT='{kind}-{group}-{version}' From b6959ca0d11e9506fd3e277f60eae63b7c24df8f Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Sun, 16 Oct 2022 16:37:00 +0200 Subject: [PATCH 09/11] Small CI for openapi2jsonschema, publish docker image --- .github/workflows/openapi2jsonschema.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/openapi2jsonschema.yml b/.github/workflows/openapi2jsonschema.yml index 0620c39..b106fd0 100644 --- a/.github/workflows/openapi2jsonschema.yml +++ b/.github/workflows/openapi2jsonschema.yml @@ -16,9 +16,6 @@ jobs: working-directory: ./scripts run: make docker-test docker-acceptance - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - # https://docs.github.com/en/actions/publishing-packages/publishing-docker-images - name: Log in to the Container registry uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 @@ -28,7 +25,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push Docker image - uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + uses: docker/build-push-action@v3 with: context: "{{defaultContext}}:scripts" push: true From 104e38623f98f65ac4a3427829f6689a66cb4808 Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Sun, 16 Oct 2022 16:38:15 +0200 Subject: [PATCH 10/11] Small CI for openapi2jsonschema, publish docker image --- .github/workflows/openapi2jsonschema.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/openapi2jsonschema.yml b/.github/workflows/openapi2jsonschema.yml index b106fd0..8bd03b9 100644 --- a/.github/workflows/openapi2jsonschema.yml +++ b/.github/workflows/openapi2jsonschema.yml @@ -27,6 +27,6 @@ jobs: - name: Build and push Docker image uses: docker/build-push-action@v3 with: - context: "{{defaultContext}}:scripts" + context: "./scripts" push: true tags: "openapi2jsonschema:latest" From f3532a028859666ee5dfdd660fdf0a9085996ca2 Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Sun, 16 Oct 2022 16:43:44 +0200 Subject: [PATCH 11/11] Small CI for openapi2jsonschema, publish docker image --- .github/workflows/openapi2jsonschema.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/openapi2jsonschema.yml b/.github/workflows/openapi2jsonschema.yml index 8bd03b9..110b7a1 100644 --- a/.github/workflows/openapi2jsonschema.yml +++ b/.github/workflows/openapi2jsonschema.yml @@ -29,4 +29,4 @@ jobs: with: context: "./scripts" push: true - tags: "openapi2jsonschema:latest" + tags: "kubeconform/openapi2jsonschema:latest"