From e0513c403eab1022139058acbd8ac5e89ef38b3f Mon Sep 17 00:00:00 2001 From: Kittywhiskers Van Gogh <63189531+kittywhiskers@users.noreply.github.com> Date: Wed, 28 Jun 2023 09:57:41 +0000 Subject: [PATCH 1/6] contrib: use `nproc --all` instead of hardcoding max jobs --- .github/workflows/guix-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/guix-build.yml b/.github/workflows/guix-build.yml index 9e5328e2134f..5d302f6d544a 100644 --- a/.github/workflows/guix-build.yml +++ b/.github/workflows/guix-build.yml @@ -51,7 +51,7 @@ jobs: run: | docker run --privileged -d --rm -t \ --name guix-daemon \ - -e ADDITIONAL_GUIX_COMMON_FLAGS='--max-jobs=32' \ + -e ADDITIONAL_GUIX_COMMON_FLAGS="--max-jobs=$(nproc --all)" \ -v ${{ github.workspace }}:/src/dash \ -w /src/dash \ guix_ubuntu:latest && \ From 604d3433355c62fbfb9a7019eff0e3832bd6614c Mon Sep 17 00:00:00 2001 From: Kittywhiskers Van Gogh <63189531+kittywhiskers@users.noreply.github.com> Date: Wed, 28 Jun 2023 09:58:54 +0000 Subject: [PATCH 2/6] contrib: add quotes to ensure that expanded expr is treated as one argument --- contrib/containers/guix/scripts/guix-check | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/containers/guix/scripts/guix-check b/contrib/containers/guix/scripts/guix-check index e70170066a93..50f7e02275c5 100755 --- a/contrib/containers/guix/scripts/guix-check +++ b/contrib/containers/guix/scripts/guix-check @@ -3,15 +3,15 @@ set -eo pipefail cd /src/dash -COMMIT_ID=$(git rev-parse --short=12 HEAD) +COMMIT_ID="$(git rev-parse --short=12 HEAD)" printf "Binaries:\n" ( \ -SRC_PATH_PREFIX=guix-build-${COMMIT_ID}/distsrc- && \ +SRC_PATH_PREFIX="guix-build-${COMMIT_ID}/distsrc-" && \ sha256sum ${SRC_PATH_PREFIX}*/src/dash{d,-cli,-tx,-wallet}{,.exe} && \ sha256sum ${SRC_PATH_PREFIX}*/src/qt/dash-qt{,.exe} && \ sha256sum ${SRC_PATH_PREFIX}*/src/test/test_dash{,.exe} \ ) | sort -k 2 printf "Archives:\n" -find guix-build-"${COMMIT_ID}"/output -type f | grep -v SHA256 | xargs sha256sum | sort -k 2 +find "guix-build-${COMMIT_ID}/output" -type f | grep -v SHA256 | xargs sha256sum | sort -k 2 From 64576e57b0d9569b6ae4eadfedb9c495533a2a2c Mon Sep 17 00:00:00 2001 From: Kittywhiskers Van Gogh <63189531+kittywhiskers@users.noreply.github.com> Date: Wed, 28 Jun 2023 16:42:28 +0000 Subject: [PATCH 3/6] contrib: minor formatting changes in `guix-check` --- contrib/containers/guix/scripts/guix-check | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/containers/guix/scripts/guix-check b/contrib/containers/guix/scripts/guix-check index 50f7e02275c5..b63cd2bab613 100755 --- a/contrib/containers/guix/scripts/guix-check +++ b/contrib/containers/guix/scripts/guix-check @@ -5,7 +5,7 @@ set -eo pipefail cd /src/dash COMMIT_ID="$(git rev-parse --short=12 HEAD)" -printf "Binaries:\n" +printf "\nBinaries:\n\n" ( \ SRC_PATH_PREFIX="guix-build-${COMMIT_ID}/distsrc-" && \ sha256sum ${SRC_PATH_PREFIX}*/src/dash{d,-cli,-tx,-wallet}{,.exe} && \ @@ -13,5 +13,5 @@ sha256sum ${SRC_PATH_PREFIX}*/src/qt/dash-qt{,.exe} && \ sha256sum ${SRC_PATH_PREFIX}*/src/test/test_dash{,.exe} \ ) | sort -k 2 -printf "Archives:\n" +printf "\nArchives:\n\n" find "guix-build-${COMMIT_ID}/output" -type f | grep -v SHA256 | xargs sha256sum | sort -k 2 From 856a841e215d3586f892e5dda9beb5eea2ec2153 Mon Sep 17 00:00:00 2001 From: Kittywhiskers Van Gogh <63189531+kittywhiskers@users.noreply.github.com> Date: Wed, 28 Jun 2023 16:45:13 +0000 Subject: [PATCH 4/6] contrib: allow defining a workspace path as argument --- .github/workflows/guix-build.yml | 2 +- contrib/containers/guix/scripts/guix-check | 13 ++++++++++++- contrib/containers/guix/scripts/guix-start | 21 ++++++++++++++++----- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/.github/workflows/guix-build.yml b/.github/workflows/guix-build.yml index 5d302f6d544a..289f7a33ac25 100644 --- a/.github/workflows/guix-build.yml +++ b/.github/workflows/guix-build.yml @@ -55,7 +55,7 @@ jobs: -v ${{ github.workspace }}:/src/dash \ -w /src/dash \ guix_ubuntu:latest && \ - docker exec guix-daemon bash -c "/usr/local/bin/guix-start" + docker exec guix-daemon bash -c '/usr/local/bin/guix-start' - name: Ensure build passes run: | diff --git a/contrib/containers/guix/scripts/guix-check b/contrib/containers/guix/scripts/guix-check index b63cd2bab613..e16891bc72a2 100755 --- a/contrib/containers/guix/scripts/guix-check +++ b/contrib/containers/guix/scripts/guix-check @@ -2,7 +2,18 @@ set -eo pipefail -cd /src/dash +if [[ -n "${1}" ]]; then + WORKSPACE_PATH="$1" +else + WORKSPACE_PATH="/src/dash" +fi + +if [[ ! -d "$WORKSPACE_PATH" ]]; then + echo "$0: $WORKSPACE_PATH is not a valid directory, exiting!" + exit 1 +fi + +cd "$WORKSPACE_PATH" COMMIT_ID="$(git rev-parse --short=12 HEAD)" printf "\nBinaries:\n\n" diff --git a/contrib/containers/guix/scripts/guix-start b/contrib/containers/guix/scripts/guix-start index 0e1e1eaf4949..ef92f6ec9a5b 100755 --- a/contrib/containers/guix/scripts/guix-start +++ b/contrib/containers/guix/scripts/guix-start @@ -2,19 +2,30 @@ set -eo pipefail +if [[ -n "${1}" ]]; then + WORKSPACE_PATH="$1" +else + WORKSPACE_PATH="/src/dash" +fi + +if [[ ! -d "$WORKSPACE_PATH" ]]; then + echo "$0: $WORKSPACE_PATH is not a valid directory, exiting!" + exit 1 +fi + XCODE_VERSION="12.1" XCODE_RELEASE="12A7403" XCODE_ARCHIVE="Xcode-${XCODE_VERSION}-${XCODE_RELEASE}-extracted-SDK-with-libcxx-headers" # Check if macOS SDK is present, if not, download it -if [ ! -d "/src/dash/depends/SDKs/${XCODE_ARCHIVE}" ] +if [ ! -d "${WORKSPACE_PATH}/depends/SDKs/${XCODE_ARCHIVE}" ] then - mkdir -p /src/dash/depends/SDKs - curl -L https://bitcoincore.org/depends-sources/sdks/${XCODE_ARCHIVE}.tar.gz | tar -xz -C /src/dash/depends/SDKs + mkdir -p "${WORKSPACE_PATH}/depends/SDKs" + curl -L https://bitcoincore.org/depends-sources/sdks/${XCODE_ARCHIVE}.tar.gz | tar -xz -C "${WORKSPACE_PATH}/depends/SDKs" fi -cd /src/dash +cd "${WORKSPACE_PATH}" git status >> /dev/null -git config --global --add safe.directory /src/dash +git config --global --add safe.directory "${WORKSPACE_PATH}" ./contrib/guix/guix-build From 490ccbb8cb1b12e6b4f1df5ca9e1bec69a04be14 Mon Sep 17 00:00:00 2001 From: Kittywhiskers Van Gogh <63189531+kittywhiskers@users.noreply.github.com> Date: Wed, 28 Jun 2023 10:47:30 +0000 Subject: [PATCH 5/6] contrib: deduplicate checksum calculation, use `guix-check` script --- .github/workflows/guix-build.yml | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/.github/workflows/guix-build.yml b/.github/workflows/guix-build.yml index 289f7a33ac25..ceeffec9537a 100644 --- a/.github/workflows/guix-build.yml +++ b/.github/workflows/guix-build.yml @@ -63,14 +63,7 @@ jobs: echo "Guix build failed!" exit 1 fi - - name: Compute SHA256 checksums for binaries - run: | - ( \ - SRC_PATH_PREFIX=guix-build-$(git rev-parse --short=12 HEAD)/distsrc- && \ - sha256sum ${SRC_PATH_PREFIX}*/src/dash{d,-cli,-tx,-wallet}{,.exe} && \ - sha256sum ${SRC_PATH_PREFIX}*/src/qt/dash-qt{,.exe} && \ - sha256sum ${SRC_PATH_PREFIX}*/src/test/test_dash{,.exe} \ - ) | sort -k 2 - - name: Compute SHA256 checksums for archives + + - name: Compute SHA256 checksums run: | - find guix-build-"$(git rev-parse --short=12 HEAD)"/output -type f | grep -v SHA256 | xargs sha256sum | sort -k 2 + ./contrib/containers/guix/scripts/guix-check ${{ github.workspace }} From b38411f8fdfaa0e460d0b653808ce23bd358061d Mon Sep 17 00:00:00 2001 From: Kittywhiskers Van Gogh <63189531+kittywhiskers@users.noreply.github.com> Date: Wed, 28 Jun 2023 16:45:36 +0000 Subject: [PATCH 6/6] contrib: run `git config` before `git status` --- contrib/containers/guix/scripts/guix-start | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/containers/guix/scripts/guix-start b/contrib/containers/guix/scripts/guix-start index ef92f6ec9a5b..7d0f27d8115e 100755 --- a/contrib/containers/guix/scripts/guix-start +++ b/contrib/containers/guix/scripts/guix-start @@ -25,7 +25,7 @@ then fi cd "${WORKSPACE_PATH}" -git status >> /dev/null git config --global --add safe.directory "${WORKSPACE_PATH}" +git status >> /dev/null ./contrib/guix/guix-build