Skip to content

Commit 23f9362

Browse files
committed
change to not curl blocked link for hashes
1 parent 9cba429 commit 23f9362

File tree

5 files changed

+50
-21
lines changed

5 files changed

+50
-21
lines changed

.github/workflows/build-release.yaml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ jobs:
3232
if (ls /media/saved-cache/*.tar.zst); then
3333
docker run --pull always --rm \
3434
--volume "/media/saved-cache:/media/saved-cache" \
35-
--volume "docker-monerod-build-cache:/media/build-cache" \
35+
--volume \
36+
"docker-monerod-build-cache:/media/build-cache" \
3637
--workdir /media \
3738
madebytimo/scripts \
3839
compress.sh --decompress /media/saved-cache/*.tar.zst
@@ -54,7 +55,10 @@ jobs:
5455
- name: Prepare environment
5556
run: |
5657
if [[ -f builder/docker.sh ]]; then
57-
docker buildx create --use
58+
curl --silent --location --output ~/buildkitd-gha.toml \
59+
"https://github.com/mbT-Infrastructure/template-config-files/raw/refs/\
60+
heads/main/debian/buildkit/buildkitd-gha.toml"
61+
docker buildx create --buildkitd-config ~/buildkitd-gha.toml --use
5862
fi
5963
- name: Build
6064
if: ${{ github.event_name != 'schedule'}}
@@ -82,7 +86,8 @@ jobs:
8286
run: |
8387
docker run --pull always --rm \
8488
--volume "/media/saved-cache:/media/saved-cache" \
85-
--volume "docker-monerod-build-cache:/media/build-cache" \
89+
--volume \
90+
"docker-monerod-build-cache:/media/build-cache" \
8691
madebytimo/scripts \
8792
compress.sh --fast --output /media/saved-cache/build-cache /media/build-cache
8893
sudo chown -R "$(whoami)" /media/saved-cache

Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ ARG TARGETPLATFORM
44

55
WORKDIR /root/builder
66

7+
ADD https://web.getmonero.org/downloads/hashes.txt hashes.txt
78
RUN download.sh https://raw.githubusercontent.com/monero-project/monero/refs/heads/master/utils/\
8-
gpg_keys/binaryfate.asc https://www.getmonero.org/downloads/hashes.txt \
9+
gpg_keys/binaryfate.asc \
910
&& gpg --keyring ./signature-public-keys.gpg --no-default-keyring --import binaryfate.asc \
1011
&& rm binaryfate.asc \
1112
&& gpg --keyring ./signature-public-keys.gpg --no-default-keyring --quiet \

Version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v0.1.1
1+
v0.1.2

builder/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env bash
2-
set -e
2+
set -e -o pipefail
33

44
SCRIPT_DIR="$(dirname "$(realpath "$0")")"
55

builder/docker.sh

Lines changed: 38 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
#!/usr/bin/env bash
2-
set -e
2+
set -e -o pipefail
33

44
BUILD_ARGUMENTS=()
5-
DEPENDENCIES=(docker)
5+
BUILDER_EXPORT_ARCHIVE="${BUILDER_EXPORT_ARCHIVE:-true}"
6+
DEPENDENCIES=(docker zstd)
67
UPDATE_BASE=false
7-
PLATFORMS=(amd64 arm64)
8-
REGISTRY_USER="madebytimo"
8+
PLATFORMS=(linux/amd64 linux/arm64)
9+
REGISTRY="docker.io/madebytimo"
10+
SCRIPT_DIR="$(dirname "$(realpath "$0")")"
911
APPLICATION_NAME="monerod"
1012

1113
# help message
@@ -14,7 +16,7 @@ for ARGUMENT in "$@"; do
1416
echo "usage: $(basename "$0") [ARGUMENT]"
1517
echo "Builds the docker image from the Dockerfile."
1618
echo "ARGUMENT can be"
17-
echo "--platform [amd64|arm64|arm] Build only for specified platform."
19+
echo "--platform PLATFORM Build only for specified platform."
1820
echo "--publish Push the build."
1921
echo "--update-base Only build if newer base image is available."
2022
exit
@@ -42,32 +44,53 @@ while [[ -n "$1" ]]; do
4244
shift
4345
done
4446

47+
IMAGE="${REGISTRY}/${APPLICATION_NAME}"
4548
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
4649
VERSION="$(cat Version.txt)"
4750

4851
cd "$PROJECT_DIR"
4952
mkdir --parents builds
5053

51-
BASE_IMAGE="$(tac Dockerfile | grep --max-count=1 "^FROM" | cut -d" " -f2)"
52-
docker pull "$BASE_IMAGE"
53-
BASE_IMAGE_DATE="$(docker image inspect --format="{{ .Created }}" "$BASE_IMAGE" | cut -d "T" -f1)"
54-
echo "Base image is $BASE_IMAGE from $BASE_IMAGE_DATE"
55-
IMAGE="${REGISTRY_USER}/${APPLICATION_NAME}"
5654
if [[ "$UPDATE_BASE" == true ]]; then
55+
BASE_IMAGE="$(tac Dockerfile | grep --max-count=1 "^FROM" | cut -d" " -f2)"
56+
docker pull --quiet "$BASE_IMAGE"
57+
BASE_IMAGE_DATE="$(docker image inspect --format="{{ .Created }}" "$BASE_IMAGE" \
58+
| sed 's|^\([^T ]*\)[T ].*$|\1|')"
59+
echo "Base image is $BASE_IMAGE from $BASE_IMAGE_DATE"
5760
docker pull "$IMAGE"
58-
PUSHED_IMAGE_DATE="$(docker image inspect --format="{{ .Created }}" "$IMAGE" | cut -d "T" -f1)"
61+
PUSHED_IMAGE_DATE="$(docker image inspect --format="{{ .Created }}" "$IMAGE" \
62+
| sed 's|^\([^T ]*\)[T ].*$|\1|')"
5963
echo "Last pushed image is from $PUSHED_IMAGE_DATE"
6064
if [[ "$BASE_IMAGE_DATE" < "$PUSHED_IMAGE_DATE" ]]; then
6165
echo "Used base image is up to date"
6266
exit;
6367
fi
68+
docker image rm "$IMAGE"
6469
fi
6570

6671
PLATFORMS_STRING="${PLATFORMS[*]}"
6772
BUILD_ARGUMENTS+=(--platform "${PLATFORMS_STRING// /,}")
68-
OUTPUT_FILE="builds/${IMAGE//"/"/-}-${VERSION}-oci.tar"
73+
if [[ "$BUILDER_EXPORT_ARCHIVE" == true ]]; then
74+
OUTPUT_FILE="builds/$(basename "$REGISTRY")-${APPLICATION_NAME}-${VERSION}-oci.tar"
75+
BUILD_ARGUMENTS+=(--output \
76+
"type=oci,dest=${OUTPUT_FILE},compression=zstd,compression-level=19,force-compression=true")
77+
fi
6978

70-
docker buildx build "${BUILD_ARGUMENTS[@]}" --output \
71-
"type=oci,dest=${OUTPUT_FILE},compression=zstd,compression-level=19,force-compression=true" \
79+
docker buildx build --pull "${BUILD_ARGUMENTS[@]}" \
7280
--tag "${IMAGE}:latest" --tag "${IMAGE}:${VERSION}" \
73-
--tag "${IMAGE}:${VERSION}-base-${BASE_IMAGE_DATE}" .
81+
--tag "${IMAGE}:${VERSION}-$(date "+%Y.%m.%d")" .
82+
83+
if [[ "$BUILDER_EXPORT_ARCHIVE" == true ]]; then
84+
docker pull --quiet quay.io/skopeo/stable > /dev/null
85+
rm -f builds/.temp-docker-archive.tar
86+
for PLATFORM in "${PLATFORMS[@]}"; do
87+
docker run --interactive --network none --rm --volume "${PWD}/builds:/builds" \
88+
quay.io/skopeo/stable copy --additional-tag "${IMAGE}:latest" --additional-tag \
89+
"${IMAGE}:${VERSION}" --additional-tag "${IMAGE}:${VERSION}-$(date "+%Y.%m.%d")" \
90+
--override-arch "${PLATFORM#*/}" --quiet "oci-archive:${OUTPUT_FILE}:latest" \
91+
"docker-archive:builds/.temp-docker-archive.tar"
92+
zstd -19 --force --quiet -T0 builds/.temp-docker-archive.tar \
93+
-o "${OUTPUT_FILE%oci.tar}${PLATFORM#*/}.tar.zst"
94+
rm -f builds/.temp-docker-archive.tar
95+
done
96+
fi

0 commit comments

Comments
 (0)