Skip to content

Add Windows installer (#65 #68) #20

Add Windows installer (#65 #68)

Add Windows installer (#65 #68) #20

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
jobs:
build_image:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Linux Release
run: |
git archive --prefix=MultiOS-USB_${{ github.ref_name }}/ -o MultiOS-USB_linux_${{ github.ref_name }}.tar ${{ github.ref_name }}
tar --delete --wildcards -f MultiOS-USB_linux_${{ github.ref_name }}.tar '*/docs/README_image' '*/docs/README_uefi' '*/install.bat' '*/install.ps1'
gzip MultiOS-USB_linux_${{ github.ref_name }}.tar
- name: Windows Release
run: |
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 -f fat32 $dev
mkdir part_1 part_2
sudo mount ${dev}p1 part_1
sudo mount ${dev}p2 part_2
sudo rm part_2/MultiOS-USB/install.log
mv docs/README_uefi INSTALL.txt
sudo zip -r MultiOS-USB_uefi_${{ github.ref_name }}.zip part_1 part_2 INSTALL.txt install.bat install.ps1 README.md -x "part_1/grub/i386-pc/*"
(cd part_2 && sudo zip -r ../files.zip *)
sudo umount ${dev}p1
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_${{ github.ref_name }}.zip $imageName files.zip README.txt
- name: Generate SHA256SUM
run: sha256sum MultiOS-USB_windows_image_*.zip MultiOS-USB_uefi_*.zip MultiOS-USB_linux_*.tar.gz > sha256sums.txt
- name: Release
env:
GH_TOKEN: ${{ github.token }}
run: |
echo "![Downloads](https://img.shields.io/github/downloads/${{ github.repository }}/${{ github.ref_name }}/total)" > notes.txt
echo "### Main changes:" >> notes.txt
git log --reverse --pretty=format:"- %h: %s" $(git describe --tags --abbrev=0 HEAD^)..HEAD | egrep -v 'fix:|minor:|typo:' >> notes.txt
commits="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/compare/$(git tag --sort=-v:refname | sed -n 2p)...$(git tag --sort=-v:refname | sed -n 1p)"
echo -e "<br>\n\n**Full Changelog**: $commits" >> notes.txt
gh release create ${{ github.ref_name }} \
--title ${{ github.ref_name }} \
--verify-tag \
--latest \
--notes-file notes.txt \
MultiOS-USB_windows_image_*.zip MultiOS-USB_uefi_*.zip MultiOS-USB_linux_*.tar.gz sha256sums.txt