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 <christoph@cstenglein.com>
This commit is contained in:
openoms 2024-04-03 21:26:00 +02:00 committed by GitHub
parent 5c8d1da6e5
commit c4b8ef5586
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 105 additions and 106 deletions

View file

@ -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

View file

@ -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

View file

@ -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"
]
}
}

View file

@ -45,6 +45,10 @@ function set_variables() {
params[desktop]="$2"
shift 2
;;
--image_size)
params[image_size]="$2"
shift 2
;;
--)
shift
break