Skip to content

Commit

Permalink
GitHub Actions - improve image creation
Browse files Browse the repository at this point in the history
  • Loading branch information
Mexit committed Apr 3, 2024
1 parent 1f32c0d commit 05b3639
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 36 deletions.
28 changes: 13 additions & 15 deletions .github/workflows/build_image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,6 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Upgrade packages and install required software
run: |
sudo apt update
sudo apt -y upgrade
sudo apt -y install qemu-utils grub-pc
- name: Set version
run: echo "ver=$(git log -1 --pretty=format:"%h")" >> "$GITHUB_ENV"

Expand All @@ -26,17 +20,21 @@ jobs:

- name: Windows Release
run: |
image_name="image.img"
image_size="54542848"
qemu-img create -f raw $image_name $image_size
dev=$(sudo losetup -f -P --show $image_name)
sed -i 's|^part_data="${tmpdir}/part_data"|part_data="part_data"|g' multios-usb.sh
sed -i -e '262s/^/# /; 265s/^/# /; 275s/^/# /; 295s/^/# /; 321,322s/^/# /' multios-usb.sh
efiPartSize="$(grep ^efi_size= multios-usb.sh | cut -f2- -d'=' | xargs)"
imageName="image.img"
imageSize=$(($(echo $efiPartSize | sed 's/\([0-9]\+\)\([A-Za-z]\)/\1/') + 2))
tmp_imageName="tmp.img"
tmp_imageSize="$(($imageSize + 50))$(echo $efiPartSize | sed 's/\([0-9]\+\)\([A-Za-z]\)/\2/')"
fallocate $tmp_imageName -l $tmp_imageSize
dev=$(sudo losetup -f -P --show $tmp_imageName)
echo "YeS" | sudo ./multios-usb.sh $dev
sudo losetup -d $dev
mkdir part_data && sudo mount ${dev}p2 part_data
(cd part_data && sudo zip -r ../files.zip *)
mv docs/README_image README
sudo zip MultiOS-USB_windows_image_$ver.zip $image_name files.zip README
sudo umount ${dev}p2
sudo dd if=$dev of=$imageName bs=1M count=$imageSize
sudo sgdisk -d 2 $imageName
mv docs/README_image README.txt
sudo zip MultiOS-USB_windows_image_$ver.zip $imageName files.zip README.txt
- name: Generate SHA256SUM
run: sha256sum MultiOS-USB_windows_image_*.zip MultiOS-USB_linux_*.tar.gz > sha256sums.txt
Expand Down
28 changes: 13 additions & 15 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,6 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Upgrade packages and install required software
run: |
sudo apt update
sudo apt -y upgrade
sudo apt -y install qemu-utils grub-pc
- name: Set version
run: echo "ver=$(git describe --tags --exact-match)" >> "$GITHUB_ENV"

Expand All @@ -25,17 +19,21 @@ jobs:

- name: Windows Release
run: |
image_name="image.img"
image_size="54542848"
qemu-img create -f raw $image_name $image_size
dev=$(sudo losetup -f -P --show $image_name)
sed -i 's|^part_data="${tmpdir}/part_data"|part_data="part_data"|g' multios-usb.sh
sed -i -e '262s/^/# /; 265s/^/# /; 275s/^/# /; 295s/^/# /; 321,322s/^/# /' multios-usb.sh
efiPartSize="$(grep ^efi_size= multios-usb.sh | cut -f2- -d'=' | xargs)"
imageName="image.img"
imageSize=$(($(echo $efiPartSize | sed 's/\([0-9]\+\)\([A-Za-z]\)/\1/') + 2))
tmp_imageName="tmp.img"
tmp_imageSize="$(($imageSize + 50))$(echo $efiPartSize | sed 's/\([0-9]\+\)\([A-Za-z]\)/\2/')"
fallocate $tmp_imageName -l $tmp_imageSize
dev=$(sudo losetup -f -P --show $tmp_imageName)
echo "YeS" | sudo ./multios-usb.sh $dev
sudo losetup -d $dev
mkdir part_data && sudo mount ${dev}p2 part_data
(cd part_data && sudo zip -r ../files.zip *)
mv docs/README_image README
sudo zip MultiOS-USB_windows_image_$ver.zip $image_name files.zip README
sudo umount ${dev}p2
sudo dd if=$dev of=$imageName bs=1M count=$imageSize
sudo sgdisk -d 2 $imageName
mv docs/README_image README.txt
sudo zip MultiOS-USB_windows_image_$ver.zip $imageName files.zip README.txt
- name: Generate SHA256SUM
run: sha256sum MultiOS-USB_windows_image_*.zip MultiOS-USB_linux_*.tar.gz > sha256sums.txt
Expand Down
13 changes: 7 additions & 6 deletions multios-usb.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,18 @@
#

set -eo pipefail
cd "$(dirname "$(readlink -f "$0")")"

log_file="install.log"
echo -e "Arguments: $@\n" > $log_file

# Defaults
scriptname=$(basename "$0")
fs_type="fat32"
data_size=""
efi_size="25M"
data_label="MultiOS-USB"
updateOnly="no"
log_file="install.log"

cd "$(dirname "$(readlink -f "$0")")"
echo -e "Arguments: $@\n" > $log_file

showUsage() {
cat <<- EOF
Expand Down Expand Up @@ -259,14 +260,14 @@ umount -f "${devp}"* &> /dev/null || true

echo "Creating partitions..."
sgdisk -Z "$dev" >> $log_file
sgdisk -n 1::+50M -t 1:0700 -c 1:"EFI System" -A 1:set:0 -A 1:set:62 -A 1:set:63 "$dev" >> $log_file
sgdisk -n 1::"+${efi_size}" -t 1:0700 -c 1:"EFI System" -A 1:set:0 -A 1:set:62 -A 1:set:63 "$dev" >> $log_file
sgdisk -n 2::"${data_size}" -t 2:"$part_code" -c 2:"$part_name" "$dev" >> $log_file

wipefs -afq "${devp}1"
wipefs -afq "${devp}2"

echo "Formating partitions..."
mkfs.fat -F 32 -n "MultiOS-EFI" "${devp}1" &>> $log_file
mkfs.fat -F 16 -n "MultiOS-EFI" "${devp}1" &>> $log_file

case "$fs_type" in
ext2|ext3|ext4)
Expand Down

0 comments on commit 05b3639

Please sign in to comment.