Skip to content

Commit

Permalink
add automatic build and release of the container image
Browse files Browse the repository at this point in the history
Signed-off-by: Alexander <mrmoor4@googlemail.com>
  • Loading branch information
schwankner committed Jan 12, 2024
1 parent e180ef5 commit acf07d5
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 1 deletion.
38 changes: 38 additions & 0 deletions .github/workflows/action.yml
Original file line number Diff line number Diff line change
@@ -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 }}
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down

0 comments on commit acf07d5

Please sign in to comment.