diff --git a/.github/workflows/release-docker-image.yml b/.github/workflows/release-docker-image.yml new file mode 100644 index 0000000..cac4fd4 --- /dev/null +++ b/.github/workflows/release-docker-image.yml @@ -0,0 +1,42 @@ +name: Release Docker Image + +on: + push: + tags: + - "v*" + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - + name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - + name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Extract Tag Version + id: tag_version + run: | + echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/v} + + - name: Echo Tag Version + run: echo ${{ steps.tag_version.outputs.VERSION }} + + - + name: Build and push + uses: docker/build-push-action@v3 + with: + push: true + tags: | + ${{ secrets.DOCKER_HUB_USERNAME }}/compose-viz:latest + ${{ secrets.DOCKER_HUB_USERNAME }}/compose-viz:${{ steps.tag_version.outputs.VERSION }} + cache-from: type=registry,ref=${{ secrets.DOCKER_HUB_USERNAME }}/compose-viz:buildcache + cache-to: type=registry,ref=${{ secrets.DOCKER_HUB_USERNAME }}/compose-viz:buildcache,mode=max diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..202bf19 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,35 @@ +FROM python:alpine3.16 as builder + +COPY ./ /compose-viz/ + +RUN \ + apk update && \ + pip install --upgrade pip + +RUN \ + apk add binutils alpine-sdk libffi-dev + +RUN \ + pip install poetry && \ + pip install pyinstaller + +RUN \ + cd /compose-viz && \ + poetry config virtualenvs.create false && \ + poetry install --no-root + +RUN \ + cd /compose-viz && \ + pyinstaller --onefile --name cpv ./compose_viz/__main__.py + +FROM alpine:3.16 as release + +COPY --from=builder /compose-viz/dist/cpv /usr/local/bin/cpv + +RUN \ + apk add --no-cache graphviz ttf-droid + +VOLUME [ "/in" ] +WORKDIR "/in" + +ENTRYPOINT [ "cpv" ] diff --git a/compose_viz/__init__.py b/compose_viz/__init__.py index a681ecd..33ab0b0 100644 --- a/compose_viz/__init__.py +++ b/compose_viz/__init__.py @@ -1,2 +1,2 @@ __app_name__ = "compose_viz" -__version__ = "0.2.0" +__version__ = "0.2.1" diff --git a/pyproject.toml b/pyproject.toml index 8644313..5f6e009 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "compose-viz" -version = "0.2.0" +version = "0.2.1" description = "A compose file visualization tool that supports compose-spec and allows you to gernerate graph in several formats." authors = ["Xyphuz Wu "] readme = "README.md"