diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml new file mode 100644 index 0000000..8c5d11d --- /dev/null +++ b/.github/workflows/action.yml @@ -0,0 +1,38 @@ +jobs: + push-container-image: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + with: + platforms: 'arm64' + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to Github Packages + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build image and push to Docker Hub and GitHub Container Registry + uses: docker/build-push-action@v2 + with: + # relative path to the place where source code with Dockerfile is located + context: . + file: {context}/APTnotes_async_dockerfile.Dockerfile + # Note: tags has to be all lower-case + tags: | + ghcr.io/schwankner/APTnotes-tools:latest + # build on feature branches, push only on main branch + push: ${{ github.ref == 'refs/heads/master' }} + platforms: linux/amd64,linux/arm64 + + - name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} \ No newline at end of file diff --git a/README.md b/README.md index 0e1f5e2..d5601c4 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,16 @@ Updated to Python 3.12 with updated dependencies as of Jan 12 2024. Synchronous and asynchronous downloads are available, but the async is strongly recommended, because it's way faster. ### Docker image +You can use prebuild Docker images from the registry or build them on your machine. +The Docker images are build for amd64 and arm64. Docker will download the correct image automatically. +Only the async Docker image is available from the registry, because it's mainly used. #### Usage - docker run --mount type=bind,source="$(pwd)"/reports,target=/usr/src/app/reports localhost/aptnotes/tools-async + docker run --mount type=bind,source="$(pwd)"/reports,target=/usr/src/app/reports ghcr.io/schwankner/APTnotes-tools This mounts the reports folder in the container and downloads all the reports to it. #### Build +There are two Dockerfiles, one for sync and another for async download of the reports. Use the one which fits for you. docker build -f APTnotes_async_dockerfile.Dockerfile . -t aptnotes/tools-async:latest