diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..5a1fecaf --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +__pycache__ +*.pyc +.tox +.coverage +.coverage.* +coverage.xml +.git +.mypy_cache +.pytest_cache +venv diff --git a/.github/workflows/package-publish.yml b/.github/workflows/package-publish.yml new file mode 100644 index 00000000..515b2bd7 --- /dev/null +++ b/.github/workflows/package-publish.yml @@ -0,0 +1,50 @@ +name: Package Publish + +on: + push: + # Publish `master` as Docker `latest` image. + branches: + - master + - stable + + # Publish `1.2.3` tags as releases. + tags: + - "**" + +env: + IMAGE_NAME: unimport + +jobs: + push: + runs-on: ubuntu-latest + permissions: + packages: write + contents: read + + steps: + - uses: actions/checkout@v2 + + - name: Build image + run: + docker build . --file Dockerfile --tag $IMAGE_NAME --label + "runnumber=${GITHUB_RUN_ID}" + + - name: Log in to registry + # This is where you will update the PAT to GH_TOKEN + run: + echo "${{ secrets.GH_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} + --password-stdin + + - name: Push image + run: | + IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME + + # Strip git ref prefix from version + VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') + + # Use Docker `latest` tag convention + [ "$VERSION" == "master" ] && VERSION=latest + # [ "$VERSION" == "stable" ] && VERSION=stable + + docker tag $IMAGE_NAME $IMAGE_ID:$VERSION + docker push $IMAGE_ID:$VERSION diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..08d0b8c3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM python:3.9-alpine + +COPY . /app +WORKDIR /app + +RUN apk add cargo + +RUN pip install --upgrade pip +RUN pip install . + +ENTRYPOINT [ "python", "-m", "unimport" ]