diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8273486cfe23..6c88e42067bb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -41,10 +41,18 @@ jobs: id: capture run: echo "version=${VERSION}" >> "$GITHUB_OUTPUT" - release: - name: Release + releases: + name: Releases needs: check runs-on: ubuntu-24.04 + strategy: + fail-fast: false # Let each build finish. + matrix: + target: + - 'bin-Fedora-28-amd64' + - 'bin-Ubuntu-focal' + - 'bin-Ubuntu-jammy' + - 'bin-Ubuntu-noble' steps: - name: Git checkout uses: actions/checkout@v4 @@ -58,13 +66,40 @@ jobs: ./configure - name: Build environment setup - run: contrib/cl-repro.sh + run: | + distribution=$(echo ${{ matrix.target }} | cut -d'-' -f3) + echo "Building base image for ${distribution}" + sudo docker run --rm -v $(pwd):/build ubuntu:${distribution} bash -c "\ + apt-get update && \ + apt-get install -y debootstrap && \ + debootstrap ${distribution} /build/${distribution}" + sudo tar -C ${distribution} -c . | docker import - ${distribution} + + # Build Docker image + docker build -t cl-repro-${distribution} - < contrib/reprobuild/Dockerfile.${distribution} + if: contains(matrix.target, 'Ubuntu') - name: Build release - run: tools/build-release.sh bin-Fedora-28-amd64 bin-Ubuntu + run: tools/build-release.sh ${{ matrix.target }} - - name: Upload release artifacts + - name: Upload target artifacts uses: actions/upload-artifact@v4 with: path: release/ + name: ${{ matrix.target }} if-no-files-found: error + + artifact: + name: Construct release artifact + needs: releases + runs-on: ubuntu-24.04 + steps: + - name: Download target artifacts + uses: actions/download-artifact@v4 + with: + path: c-lightning + pattern: bin-* + merge-multiple: true + + - name: Display target artifacts + run: ls -alh c-lightning/ diff --git a/tools/build-release.sh b/tools/build-release.sh index 0924ff675f84..f98b47961156 100755 --- a/tools/build-release.sh +++ b/tools/build-release.sh @@ -153,8 +153,11 @@ for target in $TARGETS; do docker run --rm=true -w /build $TAG rm -rf /"$VERSION-$platform" /build echo "Fedora Image Built" ;; - Ubuntu) - for d in focal jammy noble; do + Ubuntu*) + distributions=${platform#Ubuntu-} + echo "distributions=$distributions" + [ "$distributions" == "Ubuntu" ] && distributions="focal jammy noble" + for d in $distributions; do # Capitalize the first letter of distro D=$(echo "$d" | awk '{print toupper(substr($0,1,1))substr($0,2)}') echo "Building Ubuntu $D Image"