From c4b8ef5586edaddf71cc10138617692332f1a75b Mon Sep 17 00:00:00 2001 From: openoms <43343391+openoms@users.noreply.github.com> Date: Wed, 3 Apr 2024 21:26:00 +0200 Subject: [PATCH] ci: add base image build (#4465) * ci: add base image build add stop file and --image_size 20G * make /var/cache/raspiblitz world writable for qemu * add stop file to /boot/ --------- Co-authored-by: Christoph Stenglein --- .github/workflows/arm64-rpi-base-image.yml | 93 ++++++++++++++++ .github/workflows/arm64-rpi-fatpack-image.yml | 105 ------------------ ci/arm64-rpi/build.arm64-rpi.pkr.hcl | 9 +- ci/set_variables.sh | 4 + 4 files changed, 105 insertions(+), 106 deletions(-) create mode 100644 .github/workflows/arm64-rpi-base-image.yml delete mode 100644 .github/workflows/arm64-rpi-fatpack-image.yml diff --git a/.github/workflows/arm64-rpi-base-image.yml b/.github/workflows/arm64-rpi-base-image.yml new file mode 100644 index 000000000..fcbe6962b --- /dev/null +++ b/.github/workflows/arm64-rpi-base-image.yml @@ -0,0 +1,93 @@ +name: arm64-rpi-base-image-build + +concurrency: + group: arm64-rpi-base-image-build-${{ github.head_ref }} + cancel-in-progress: true + +on: + workflow_dispatch: + push: + branches: ['dev', 'v1.10', 'v1.11'] + paths: + - 'build_sdcard.sh' + - 'home.admin/config.scripts/bitcoin.install.sh' + - 'home.admin/config.scripts/tor.install.sh' + - 'home.admin/config.scripts/blitz.i2pd.sh' + - 'home.admin/config.scripts/blitz.web.sh' + - 'home.admin/config.scripts/blitz.display.sh' + - 'ci/arm64-rpi/**' + - 'home.admin/config.scripts/bonus.btc-rpc-explorer.sh' + - 'home.admin/config.scripts/bonus.btcpayserver.sh' + - 'home.admin/config.scripts/bonus.jam.sh' + - 'home.admin/config.scripts/bonus.joinmarket.sh' + - 'home.admin/config.scripts/bonus.lnbits.sh' + - 'home.admin/config.scripts/bonus.mempool.sh' + - 'home.admin/config.scripts/bonus.nodejs.sh' + - 'home.admin/config.scripts/bonus.rtl.sh' + - 'home.admin/config.scripts/bonus.thunderhub.sh' + - 'home.admin/config.scripts/blitz.web.api.sh' + - 'home.admin/config.scripts/blitz.web.ui' + pull_request: + branches: ['dev', 'v1.10', 'v1.11'] + paths: + - 'build_sdcard.sh' + - 'home.admin/config.scripts/bitcoin.install.sh' + - 'home.admin/config.scripts/tor.install.sh' + - 'home.admin/config.scripts/blitz.i2pd.sh' + - 'home.admin/config.scripts/blitz.web.sh' + - 'home.admin/config.scripts/blitz.display.sh' + - 'ci/arm64-rpi/**' + - 'home.admin/config.scripts/bonus.btc-rpc-explorer.sh' + - 'home.admin/config.scripts/bonus.btcpayserver.sh' + - 'home.admin/config.scripts/bonus.jam.sh' + - 'home.admin/config.scripts/bonus.joinmarket.sh' + - 'home.admin/config.scripts/bonus.lnbits.sh' + - 'home.admin/config.scripts/bonus.mempool.sh' + - 'home.admin/config.scripts/bonus.nodejs.sh' + - 'home.admin/config.scripts/bonus.rtl.sh' + - 'home.admin/config.scripts/bonus.thunderhub.sh' + - 'home.admin/config.scripts/blitz.web.api.sh' + - 'home.admin/config.scripts/blitz.web.ui' + +jobs: + arm64-rpi-base-image-build: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + + - name: Set values + id: set_values + run: | + echo "BUILD_VERSION=$(git describe --always --tags)" >> $GITHUB_ENV + if [ -z "$GITHUB_HEAD_REF" ]; then + echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV + else + echo "BRANCH_NAME=${GITHUB_HEAD_REF}" >> $GITHUB_ENV + fi + if [[ "${{github.event_name}}" == "pull_request" ]]; then + echo "GITHUB_USER=${{github.event.pull_request.head.repo.owner.login}}" >> $GITHUB_OUTPUT + else + echo "GITHUB_USER=$(echo ${{github.repository}} | cut -d'/' -f1)" >> $GITHUB_OUTPUT + fi + + - name: Display the build name + run: echo "Building the raspiblitz-arm64-rpi-base-image" + + - name: Run the build script + run: | + echo "Using the variables: --pack base --github_user ${{steps.set_values.outputs.GITHUB_USER}} --branch ${{env.BRANCH_NAME}} --image_size 18G" + cd ci/arm64-rpi + bash packer.build.arm64-rpi.sh --pack base --github_user ${{steps.set_values.outputs.GITHUB_USER}} --branch ${{env.BRANCH_NAME}} --image_size 18G + + - name: Calculate the checksum of the raw image + run: | + cd ci/arm64-rpi + sha256sum raspiblitz-arm64-rpi-base.img > raspiblitz-arm64-rpi-base.img.sha256 + + - name: Upload the base image and checksum + uses: actions/upload-artifact@v4 + with: + name: raspiblitz-arm64-rpi-base-image-${{ env.BUILD_VERSION }} + path: | + ${{ github.workspace }}/ci/arm64-rpi/raspiblitz-arm64-rpi-base.img.sha256 + ${{ github.workspace }}/ci/arm64-rpi/raspiblitz-arm64-rpi-base.img diff --git a/.github/workflows/arm64-rpi-fatpack-image.yml b/.github/workflows/arm64-rpi-fatpack-image.yml deleted file mode 100644 index b14060a3f..000000000 --- a/.github/workflows/arm64-rpi-fatpack-image.yml +++ /dev/null @@ -1,105 +0,0 @@ -name: arm64-rpi-fatpack-image-build - -concurrency: - group: arm64-rpi-fatpack-image-build-${{ github.head_ref }} - cancel-in-progress: true - -on: - workflow_dispatch: - #push: - # branches: [ "dev", "v1.10" ] - # paths: - # - 'build_sdcard.sh' - # - 'home.admin/bitcoin.install.sh' - # - 'home.admin/lnd.install.sh' - # - 'home.admin/cl.install.sh' - # - 'home.admin/cl-plugin.cln-grpc.sh' - # - 'home.admin/tor.install.sh' - # - 'home.admin/blitz.i2pd.sh' - # - 'home.admin/blitz.web.sh' - # - 'home.admin/bonus.nodejs.sh' - # - 'home.admin/bonus.rtl.sh' - # - 'home.admin/bonus.btcpayserver.sh' - # - 'home.admin/bonus.thunderhub.sh' - # - 'home.admin/bonus.jam.sh install' - # - 'home.admin/bonus.mempool.sh' - # - 'home.admin/blitz.web.api.sh' - # - 'home.admin/blitz.web.ui.sh' - # - 'home.admin/blitz.display.sh' - # - 'ci/arm64-rpi/**' - #pull_request: - # branches: [ "dev", "v1.10" ] - # paths: - # - 'build_sdcard.sh' - # - 'home.admin/bitcoin.install.sh' - # - 'home.admin/lnd.install.sh' - # - 'home.admin/cl.install.sh' - # - 'home.admin/cl-plugin.cln-grpc.sh' - # - 'home.admin/tor.install.sh' - # - 'home.admin/blitz.i2pd.sh' - # - 'home.admin/blitz.web.sh' - # - 'home.admin/bonus.nodejs.sh' - # - 'home.admin/bonus.rtl.sh' - # - 'home.admin/bonus.btcpayserver.sh' - # - 'home.admin/bonus.thunderhub.sh' - # - 'home.admin/bonus.jam.sh install' - # - 'home.admin/bonus.mempool.sh' - # - 'home.admin/blitz.web.api.sh' - # - 'home.admin/blitz.web.ui.sh' - # - 'home.admin/blitz.display.sh' - # - 'ci/amd64/**' - -jobs: - arm64-rpi-image-build: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - - name: Set values - id: set_values - run: | - echo "BUILD_DATE=$(date +"%Y-%m-%d")" >> $GITHUB_ENV - echo "BUILD_VERSION=$(git describe --always --tags)" >> $GITHUB_ENV - if [ -z "$GITHUB_HEAD_REF" ]; then - echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV - else - echo "BRANCH_NAME=${GITHUB_HEAD_REF}" >> $GITHUB_ENV - fi - if [[ "${{github.event_name}}" == "pull_request" ]]; then - echo "GITHUB_USER=${{github.event.pull_request.head.repo.owner.login}}" >> $GITHUB_OUTPUT - else - echo "GITHUB_USER=$(echo ${{github.repository}} | cut -d'/' -f1)" >> $GITHUB_OUTPUT - fi - - - name: Display the build name - run: echo "Building the raspiblitz-arm64-rpi-fatpack-image-${{env.BUILD_DATE}}-${{env.BUILD_VERSION}}" - - - name: Run the build script - run: | - echo "Using the variables: --pack fatpack --github_user ${{steps.set_values.outputs.GITHUB_USER}} --branch ${{env.BRANCH_NAME}}" - cd ci/arm64-rpi - bash packer.build.arm64-rpi.sh --pack fatpack --github_user ${{steps.set_values.outputs.GITHUB_USER}} --branch ${{env.BRANCH_NAME}} - - - name: Compute checksum of the raw image - run: | - cd ci/arm64-rpi - sha256sum raspiblitz-arm64-rpi-fatpack.img > raspiblitz-arm64-rpi-fatpack.img.sha256 - - - name: Compress image - run: | - cd ci/arm64-rpi - gzip -v9 raspiblitz-arm64-rpi-fatpack.img - - - name: Compute checksum of the compressed image - run: | - cd ci/arm64-rpi - sha256sum raspiblitz-arm64-rpi-fatpack.img.gz > raspiblitz-arm64-rpi-fatpack.img.gz.sha256 - - - name: Upload the image and checksums - uses: actions/upload-artifact@v4 - with: - name: raspiblitz-arm64-fatpack-rpi-image-${{ env.BUILD_DATE }}-${{ env.BUILD_VERSION }} - path: | - ${{ github.workspace }}/ci/arm64-rpi/raspiblitz-arm64-rpi-fatpack.img.sha256 - ${{ github.workspace }}/ci/arm64-rpi/raspiblitz-arm64-rpi-fatpack.img.gz - ${{ github.workspace }}/ci/arm64-rpi/raspiblitz-arm64-rpi-fatpack.img.gz.sha256 diff --git a/ci/arm64-rpi/build.arm64-rpi.pkr.hcl b/ci/arm64-rpi/build.arm64-rpi.pkr.hcl index 5726087d3..349d2edd4 100644 --- a/ci/arm64-rpi/build.arm64-rpi.pkr.hcl +++ b/ci/arm64-rpi/build.arm64-rpi.pkr.hcl @@ -3,6 +3,7 @@ variable "github_user" { default = "raspiblitz" } variable "branch" { default = "dev" } variable "image_link" { default = "https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2024-03-15/2024-03-15-raspios-bookworm-arm64.img.xz" } variable "image_checksum" { default = "7e53a46aab92051d523d7283c080532bebb52ce86758629bf1951be9b4b0560f" } +variable "image_size" { default = "20G" } source "arm" "raspiblitz-arm64-rpi" { file_checksum_type = "sha256" @@ -29,7 +30,7 @@ source "arm" "raspiblitz-arm64-rpi" { type = "83" } image_path = "raspiblitz-arm64-rpi-${var.pack}.img" - image_size = "28G" + image_size = var.image_size image_type = "dos" qemu_binary_destination_path = "/usr/bin/qemu-arm-static" qemu_binary_source_path = "/usr/bin/qemu-arm-static" @@ -68,4 +69,10 @@ build { "echo 'OK'", ] } + + provisioner "shell" { + inline = [ + "if [ \"${var.pack}\" = \"base\" ]; then echo 'Adding stop file to /boot/'; touch /boot/stop; fi" + ] + } } diff --git a/ci/set_variables.sh b/ci/set_variables.sh index c02a49fa2..14dd88acc 100755 --- a/ci/set_variables.sh +++ b/ci/set_variables.sh @@ -45,6 +45,10 @@ function set_variables() { params[desktop]="$2" shift 2 ;; + --image_size) + params[image_size]="$2" + shift 2 + ;; --) shift break