Skip to content

Release v0.14.2 - fix #104 #29

Release v0.14.2 - fix #104

Release v0.14.2 - fix #104 #29

Workflow file for this run

name: Artifacts or Release
on:
push:
branches:
- '**'
tags:
- 'v*'
pull_request:
jobs:
build_image:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Set version
run: |
if [[ "${{ github.ref_type }}" == "tag" ]]; then
echo "ver=${{ github.ref_name }}" >> "$GITHUB_ENV"
else
echo "ver=$(git log -1 --pretty=format:'%h')" >> "$GITHUB_ENV"
fi
- name: Linux Release
run: |
git archive --prefix=MultiOS-USB_$ver/ -o MultiOS-USB_linux_$ver.tar $ver
tar --delete --wildcards -f MultiOS-USB_linux_$ver.tar '*/docs/README_image' '*/docs/README_uefi' '*/install.bat' '*/install.ps1'
gzip MultiOS-USB_linux_$ver.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_$ver.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_$ver.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: Upload artifacts
if: github.ref_type != 'tag'
uses: actions/upload-artifact@v7
with:
name: MultiOS-USB_images_${{ env.ver }}
path: |
MultiOS-USB_windows_image_*.zip
MultiOS-USB_uefi_*.zip
MultiOS-USB_linux_*.tar.gz
sha256sums.txt
- name: Release
if: startsWith(github.ref, 'refs/tags/v')
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