56 lines
No EOL
2.1 KiB
Bash
56 lines
No EOL
2.1 KiB
Bash
#!/usr/bin/env bash
|
|
VERSION="$(grep -i version varken/__init__.py | cut -d' ' -f3 | tr -d \")"
|
|
|
|
# Docker
|
|
GITHUB_USER='dirtycajunrice'
|
|
DOCKER_USER='dirtycajunrice'
|
|
PROJECT='varken'
|
|
NAMESPACE="boerderij/${PROJECT}"
|
|
|
|
# Docker experimental config
|
|
echo '{"experimental":true}' | sudo tee /etc/docker/daemon.json
|
|
[[ -d ~/.docker ]] || mkdir ~/.docker
|
|
[[ -f ~/.docker/config.json ]] || touch ~/.docker/config.json
|
|
echo '{"experimental":"enabled"}' | sudo tee ~/.docker/config.json
|
|
sudo service docker restart
|
|
|
|
# Auth
|
|
echo "$DOCKER_PASSWORD" | docker login -u="$DOCKER_USER" --password-stdin
|
|
|
|
# Latest x64
|
|
docker build -t "${NAMESPACE}:latest" . && \
|
|
docker push "${NAMESPACE}:latest"
|
|
# x64 Arch
|
|
docker tag "${NAMESPACE}:latest" "${NAMESPACE}:latest-amd64" && \
|
|
docker push "${NAMESPACE}:latest-amd64"
|
|
# Versioned x64
|
|
docker tag "${NAMESPACE}:latest" "${NAMESPACE}:${VERSION}" && \
|
|
docker push "${NAMESPACE}:${VERSION}"
|
|
docker tag "${NAMESPACE}:latest" "${NAMESPACE}:${VERSION}-amd64" && \
|
|
docker push "${NAMESPACE}:${VERSION}-amd64"
|
|
|
|
# Prepare qemu for ARM builds
|
|
docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
|
wget -P tmp/ "https://github.com/multiarch/qemu-user-static/releases/download/v3.1.0-2/qemu-aarch64-static"
|
|
wget -P tmp/ "https://github.com/multiarch/qemu-user-static/releases/download/v3.1.0-2/qemu-arm-static"
|
|
chmod +x tmp/qemu-aarch64-static tmp/qemu-arm-static
|
|
|
|
# ARM images
|
|
for i in $(ls *arm*); do
|
|
arch="$(echo ${i} | cut -d. -f2)"
|
|
# Latest
|
|
docker build -f "./Dockerfile.${arch}" -t "${NAMESPACE}:latest-${arch}" . && \
|
|
docker push "${NAMESPACE}:latest-${arch}" && \
|
|
# Versioned
|
|
docker tag "${NAMESPACE}:latest-${arch}" "${NAMESPACE}:${VERSION}-${arch}" && \
|
|
docker push "${NAMESPACE}:${VERSION}-${arch}"
|
|
done
|
|
|
|
wget -O manifest-tool https://github.com/estesp/manifest-tool/releases/download/v0.9.0/manifest-tool-linux-amd64 && \
|
|
chmod +x manifest-tool && \
|
|
python3 manifest_generator.py && \
|
|
./manifest-tool --username "$DOCKER_USER" --password "$DOCKER_PASSWORD" push from-spec ".manifest.yaml"
|
|
# Git tags
|
|
git remote set-url origin "https://${GITHUB_USER}:${GITHUB_API_KEY}@github.com/${NAMESPACE}.git" && \
|
|
git tag "${VERSION}" && \
|
|
git push --tags |