Compare commits

...

24 Commits

Author SHA1 Message Date
openoms
34c3011b24 add stop file to /boot/ 2024-03-22 12:31:11 +01:00
openoms
2e8c8b82dd check /boot/firmware before adding stop 2024-03-21 16:26:13 +01:00
openoms
aec80e116e add image_size everywhere 2024-03-21 16:26:12 +01:00
openoms
2cdd81d9fc tweak reseerved space, use du -hd2 2024-03-21 16:26:11 +01:00
openoms
95bd2f5366 reserve 38 G 2024-03-21 16:26:10 +01:00
openoms
c308edf6f9 fix du command 2024-03-21 16:26:09 +01:00
openoms
033446cafd reserve 36G 2024-03-21 16:26:08 +01:00
openoms
5e1360468e free space 34G, image size 18G 2024-03-21 16:26:07 +01:00
openoms
f954d7099d adjust free space and image size 2024-03-21 16:26:06 +01:00
openoms
02949271da skip btcpay build
run into the erro:
    arm.raspiblitz-arm64-rpi-fat: MSBuild version 17.8.3+195e7f5a3 for .NET
    arm.raspiblitz-arm64-rpi-fat:   Determining projects to restore...
==> arm.raspiblitz-arm64-rpi-fat: qemu: uncaught target signal 11 (Segmentation fault) - core dumped
==> arm.raspiblitz-arm64-rpi-fat: qemu: uncaught target signal 11 (Segmentation fault) - core dumped
==> arm.raspiblitz-arm64-rpi-fat: /home/admin/config.scripts/bonus.btcpayserver.sh: line 520: 122531 Segmentation fault      sudo -u btcpay /home/btcpay/dotnet/dotnet build -c Release NBXplorer/NBXplorer.csproj
2024/03/13 17:31:36 packer-builder-arm plugin: 2024/03/13 17:31:36 Chroot execution exited with '1': '"chmod +x /tmp/script_7347.sh; PACKER_BUILDER_TYPE='arm' PACKER_BUILD_NAME='raspiblitz-arm64-rpi-fat' branch='base-image-with-stop' github_user='raspiblitz'  /tmp/script_7347.sh"'
2024-03-21 16:26:05 +01:00
openoms
2a4b301122 skip buliding joinmarket temporarily
Ran into the error in actions:
==> arm.raspiblitz-arm64-rpi-fat: sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?
==> arm.raspiblitz-arm64-rpi-fat: sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?
    arm.raspiblitz-arm64-rpi-fat: # Installing JoinMarket
==> arm.raspiblitz-arm64-rpi-fat: sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?
==> arm.raspiblitz-arm64-rpi-fat: /home/joinmarket/install.joinmarket.sh: line 173: cd: joinmarket-clientserver: No such file or directory
    arm.raspiblitz-arm64-rpi-fat:  Failed to install JoinMarket
2024-03-21 16:26:04 +01:00
openoms
75d335a308 format the bclitz.fatpack.sh to increase visibility in logs 2024-03-21 16:26:03 +01:00
openoms
142c705670 add file tiggers and use version for the base image 2024-03-21 16:26:02 +01:00
openoms
0576ba7eaa make /var/cache/raspiblitz world writable for qemu 2024-03-21 16:26:01 +01:00
openoms
19bf56b870 fix names 2024-03-21 16:26:00 +01:00
openoms
87eea292e5 do not version the internal base image 2024-03-21 16:25:59 +01:00
openoms
48ccea43c7 reuse BUILD_DATE and BUILD_VERSION between jobs 2024-03-21 16:25:59 +01:00
openoms
0b125051ca fix filename and source 2024-03-21 16:25:58 +01:00
openoms
1dda73f75c revert changes in lean image action 2024-03-21 16:25:57 +01:00
openoms
7680394f15 add the base image to the fatpack action 2024-03-21 16:25:56 +01:00
Christoph Stenglein
7f8db7bc93 reduce maximize space to 31gb 2024-03-21 16:25:55 +01:00
Christoph Stenglein
0a243dd1d5 reduce image size to 20gb 2024-03-21 16:25:54 +01:00
Christoph Stenglein
65b6e86fec (ci): build fatpack image based on lean image 2024-03-21 16:25:53 +01:00
openoms
65540e1e5f ci: add base image build
add stop file and --image_size 20G
2024-03-21 16:25:52 +01:00
6 changed files with 278 additions and 82 deletions

View File

@@ -6,55 +6,116 @@ concurrency:
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/**'
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-image-build:
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
arm64-rpi-fatpack-image-build:
needs: arm64-rpi-base-image-build
runs-on: ubuntu-22.04
steps:
- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 40000
temp-reserve-mb: 40000
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
remove-docker-images: 'true'
- name: Display free space
run: |
df -h
echo "# disk usage:"
sudo du -hd1 /mnt/
- name: Checkout code
uses: actions/checkout@v4
- name: Set values
id: set_values
run: |
@@ -71,35 +132,62 @@ jobs:
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: Download base image
uses: actions/download-artifact@v4
with:
name: raspiblitz-arm64-rpi-base-image-${{ env.BUILD_VERSION }}
path: ci/arm64-rpi
- name: Run the build script
- name: Set the "image_checksum" variable
run: |
echo "Using the variables: --pack fatpack --github_user ${{steps.set_values.outputs.GITHUB_USER}} --branch ${{env.BRANCH_NAME}}"
echo "IMAGE_CHECKSUM=$(cat ci/arm64-rpi/raspiblitz-arm64-rpi-base.img.sha256 | cut -d' ' -f1)" >> $GITHUB_ENV
- name: Display free space
run: |
df -h
echo "# disk usage:"
sudo du -hd2 /mnt/
- name: Run the fatpack build
run: |
echo "Using the variables: --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}}
docker run --rm --privileged \
-v /dev:/dev \
-v .:/build \
mkaczanowski/packer-builder-arm:1.0.9 build \
-var "github_user=${{steps.set_values.outputs.GITHUB_USER}}" \
-var "branch=${{env.BRANCH_NAME}}" \
-var "artifact=file:/build/raspiblitz-arm64-rpi-base.img" \
-var "image_checksum=${{env.IMAGE_CHECKSUM}}" \
build.arm64-rpi-fat.pkr.hcl
- name: Compute checksum of the raw image
run: |
cd ci/arm64-rpi
sha256sum raspiblitz-arm64-rpi-fatpack.img > raspiblitz-arm64-rpi-fatpack.img.sha256
sha256sum raspiblitz-arm64-rpi-fat.img > raspiblitz-arm64-rpi-fat.img.sha256
- name: Display free space
run: |
df -h
echo "# disk usage:"
sudo du -hd2 /mnt/
- name: Compress image
run: |
cd ci/arm64-rpi
gzip -v9 raspiblitz-arm64-rpi-fatpack.img
gzip -v9 raspiblitz-arm64-rpi-fat.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
sha256sum raspiblitz-arm64-rpi-fat.img.gz > raspiblitz-arm64-rpi-fat.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 }}
name: raspiblitz-arm64-rpi-fat-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
${{ github.workspace }}/ci/arm64-rpi/raspiblitz-arm64-rpi-fat.img.sha256
${{ github.workspace }}/ci/arm64-rpi/raspiblitz-arm64-rpi-fat.img.gz
${{ github.workspace }}/ci/arm64-rpi/raspiblitz-arm64-rpi-fat.img.gz.sha256

View File

@@ -0,0 +1,48 @@
variable "github_user" { default = "raspiblitz" }
variable "branch" { default = "dev" }
variable "artifact" { default = "file:/build/raspiblitz-arm64-rpi-lean.img" }
variable "image_checksum" { default = "not_available" }
variable "image_size" { default = "20G" }
source "arm" "raspiblitz-arm64-rpi-fat" {
file_urls = [var.artifact]
file_checksum_type = "sha256"
file_checksum = var.image_checksum
file_target_extension = "img"
image_build_method = "reuse"
image_chroot_env = ["PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin"]
image_partitions {
filesystem = "vfat"
mountpoint = "/boot"
name = "boot"
size = "256M"
start_sector = "8192"
type = "c"
}
image_partitions {
filesystem = "ext4"
mountpoint = "/"
name = "root"
size = "0"
start_sector = "532480"
type = "83"
}
image_path = "raspiblitz-arm64-rpi-fat.img"
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"
}
build {
sources = ["source.arm.raspiblitz-arm64-rpi-fat"]
provisioner "shell" {
environment_vars = [
"github_user=${var.github_user}",
"branch=${var.branch}",
]
script = "./build.raspiblitz-fat.sh"
}
}

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

@@ -0,0 +1,13 @@
#!/bin/sh -eux
echo 'Download the blitz.fatpack.sh script ...'
wget https://raw.githubusercontent.com/${github_user}/raspiblitz/${branch}/home.admin/config.scripts/blitz.fatpack.sh
# make /dev/shm world writable for qemu
sudo chmod 777 /dev/shm
# make /var/cache/raspiblitz world writable for qemu
sudo chmod 777 /var/cache/raspiblitz
echo 'Build Fatpack ...'
bash blitz.fatpack.sh

View File

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

View File

@@ -4,8 +4,8 @@
echo -e "\n*** FATPACK ***"
# check if su
if [ "$EUID" -ne 0 ]
then echo "Please run as root (with sudo)"
if [ "$EUID" -ne 0 ]; then
echo "Please run as root (with sudo)"
exit 1
fi
@@ -63,15 +63,23 @@ echo "# defaultAPIrepo(${defaultAPIrepo})"
echo "# defaultWEBUIuser(${defaultWEBUIuser})"
echo "# defaultWEBUIrepo(${defaultWEBUIrepo})"
echo
echo "*******************************"
echo "* Adding nodeJS Framework ..."
/home/admin/config.scripts/bonus.nodejs.sh on || exit 1
echo
echo "*******************************"
echo "* Optional Packages (may be needed for extended features)"
apt_install qrencode secure-delete fbi msmtp unclutter xterm python3-pyqt5 xfonts-terminus apache2-utils nginx python3-jinja2 socat libatlas-base-dev hexyl autossh
echo
echo "*******************************"
echo "* Adding LND ..."
/home/admin/config.scripts/lnd.install.sh install || exit 1
echo
echo "*******************************"
echo "* Adding Core Lightning ..."
/home/admin/config.scripts/cl.install.sh install || exit 1
@@ -82,8 +90,13 @@ sudo -u admin curl -H "Accept: application/json; indent=4" https://bitnodes.io/a
# Fallback Nodes List from Bitcoin Core
sudo -u admin curl https://raw.githubusercontent.com/bitcoin/bitcoin/master/contrib/seeds/nodes_main.txt -o /home/admin/fallback.bitcoin.nodes
echo
echo "*******************************"
echo "* Adding Raspiblitz API ..."
sudo /home/admin/config.scripts/blitz.web.api.sh on "${defaultAPIuser}" "${defaultAPIrepo}" "blitz-${branch}" || exit 1
echo
echo "*******************************"
echo "* Adding Raspiblitz WebUI ..."
sudo /home/admin/config.scripts/blitz.web.ui.sh on "${defaultWEBUIuser}" "${defaultWEBUIrepo}" "release/${branch}" || exit 1
@@ -94,20 +107,43 @@ sudo cp -a /home/blitzapi/blitz_web/build/* /home/admin/assets/nginx/www_public
sudo chown admin:admin /home/admin/assets/nginx/www_public
sudo rm -r /home/blitzapi/blitz_web/build/*
echo
echo "*******************************"
echo "* Adding Code&Compile for WEBUI-APP: LNBITS"
/home/admin/config.scripts/bonus.lnbits.sh install || exit 1
echo "* Adding Code&Compile for WEBUI-APP: JAM"
/home/admin/config.scripts/bonus.jam.sh install || exit 1
echo "* Adding Code&Compile for WEBUI-APP: BTCPAYSERVER"
/home/admin/config.scripts/bonus.btcpayserver.sh install || exit 1
#echo
#echo "*******************************"
#echo "* Adding Code&Compile for WEBUI-APP: JAM"
#/home/admin/config.scripts/bonus.jam.sh install || exit 1
#echo
#echo "*******************************"
#echo "* Adding Code&Compile for WEBUI-APP: BTCPAYSERVER"
#/home/admin/config.scripts/bonus.btcpayserver.sh install || exit 1
echo
echo "*******************************"
echo "* Adding Code&Compile for WEBUI-APP: RTL"
/home/admin/config.scripts/bonus.rtl.sh install || exit 1
echo
echo "*******************************"
echo "* Adding Code&Compile for WEBUI-APP: THUNDERHUB"
/home/admin/config.scripts/bonus.thunderhub.sh install || exit 1
echo
echo "*******************************"
echo "* Adding Code&Compile for WEBUI-APP: BTC RPC EXPLORER"
/home/admin/config.scripts/bonus.btc-rpc-explorer.sh install || exit 1
echo
echo "*******************************"
echo "* Adding Code&Compile for WEBUI-APP: MEMPOOL"
/home/admin/config.scripts/bonus.mempool.sh install || exit 1
echo
echo "*******************************"
echo "* Adding Code&Compile for WEBUI-APP: ELECTRS"
/home/admin/config.scripts/bonus.electrs.sh install || exit 1