Enable publishing to ghcr.io (Github container registry)

This commit is contained in:
Daniel Bast 2021-04-21 19:43:50 +02:00
commit ae3af5222e
3 changed files with 15 additions and 4 deletions

View file

@ -121,6 +121,7 @@ jobs:
env: env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
GITHUB_GHCR_TOKEN: ${{ secrets.GITHUB_GHCR_TOKEN }}
DOCKER_EMAIL: ${{ secrets.DOCKER_EMAIL }} DOCKER_EMAIL: ${{ secrets.DOCKER_EMAIL }}
DOCKER_BASE: ${{ secrets.DOCKER_USERNAME }}/shellcheck DOCKER_BASE: ${{ secrets.DOCKER_USERNAME }}/shellcheck
run: | run: |

View file

@ -36,6 +36,11 @@ function multi_arch_docker::login_to_docker_hub() {
echo "$DOCKER_PASSWORD" | docker login -u="$DOCKER_USERNAME" --password-stdin echo "$DOCKER_PASSWORD" | docker login -u="$DOCKER_USERNAME" --password-stdin
} }
# Log in to Github container registry for deployment.
function multi_arch_docker::login_to_github_container_registry() {
echo "$GITHUB_GHCR_TOKEN" | docker login -u="$DOCKER_USERNAME" --password-stdin
}
# Run buildx build and push. Passed in arguments augment the command line. # Run buildx build and push. Passed in arguments augment the command line.
function multi_arch_docker::buildx() { function multi_arch_docker::buildx() {
mkdir -p /tmp/empty mkdir -p /tmp/empty
@ -51,10 +56,13 @@ function multi_arch_docker::buildx() {
# Build and push plain and alpine docker images for all tags. # Build and push plain and alpine docker images for all tags.
function multi_arch_docker::build_and_push_all() { function multi_arch_docker::build_and_push_all() {
declare -a registries=("" "ghcr.io/")
for tag in $TAGS; do for tag in $TAGS; do
multi_arch_docker::buildx -t "$DOCKER_BASE:$tag" --build-arg "tag=$tag" for registry in "${registries[@]}"; do
multi_arch_docker::buildx -t "$DOCKER_BASE-alpine:$tag" \ multi_arch_docker::buildx -t "${registry}$DOCKER_BASE:$tag" --build-arg "tag=$tag"
--build-arg "tag=$tag" --target alpine multi_arch_docker::buildx -t "${registry}$DOCKER_BASE-alpine:$tag" \
--build-arg "tag=$tag" --target alpine
done
done done
} }
@ -101,6 +109,7 @@ function multi_arch_docker::main() {
multi_arch_docker::install_docker_buildx multi_arch_docker::install_docker_buildx
multi_arch_docker::login_to_docker_hub multi_arch_docker::login_to_docker_hub
multi_arch_docker::login_to_github_container_registry
multi_arch_docker::build_and_push_all multi_arch_docker::build_and_push_all
multi_arch_docker::test_all multi_arch_docker::test_all
} }

View file

@ -210,10 +210,11 @@ From Snap Store:
snap install --channel=edge shellcheck snap install --channel=edge shellcheck
From Docker Hub: From Docker Hub / GitHub Container Registry:
```sh ```sh
docker run --rm -v "$PWD:/mnt" koalaman/shellcheck:stable myscript docker run --rm -v "$PWD:/mnt" koalaman/shellcheck:stable myscript
docker run --rm -v "$PWD:/mnt" ghcr.io/koalaman/shellcheck:stable myscript
# Or :v0.4.7 for that version, or :latest for daily builds # Or :v0.4.7 for that version, or :latest for daily builds
``` ```