From 244606a1cd92930b866f837594a35564e047aca3 Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Sun, 16 Oct 2022 16:08:38 +0200 Subject: [PATCH] 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 .