diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1bb267b..dbbde5c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,4 +1,4 @@ -name: ci +name: kubeconform on: push jobs: kubeconform-test: @@ -16,21 +16,10 @@ 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: - 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 new file mode 100644 index 0000000..110b7a1 --- /dev/null +++ b/.github/workflows/openapi2jsonschema.yml @@ -0,0 +1,32 @@ +name: openapi2jsonschema +on: push + +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 + + # https://docs.github.com/en/actions/publishing-packages/publishing-docker-images + - 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@v3 + with: + context: "./scripts" + push: true + tags: "kubeconform/openapi2jsonschema:latest" diff --git a/scripts/Dockerfile b/scripts/Dockerfile new file mode 100644 index 0000000..c74086c --- /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="openapi2jsonschema" \ + org.opencontainers.image.url="https://github.com/yannh/kubeconform/tree/master/scripts/" +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 .