Update raspberrypi.yml #37
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
push: | |
tags: | |
- 'v*' | |
name: Create Release | |
env: | |
CUSTOM_IMAGE_NAME: misogihagi_ubuntu | |
CUSTOM_IMAGE_ISO: ubuntu-misogihagi-20.04.3-desktop-amd64.iso | |
jobs: | |
build: | |
name: Create Release | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: pull base image | |
run: curl -LO https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso | |
- name: install essential package | |
run: sudo apt install -y squashfs-tools genisoimage | |
- name: mount base image | |
run: mkdir mnt && sudo mount -o loop ./ubuntu-20.04.3-desktop-amd64.iso mnt | |
- name: rsync | |
run: mkdir extract-cd && rsync --exclude=mnt/casper/filesystem.squashfs -a mnt/ extract-cd | |
- name: unsquash | |
run: sudo unsquashfs mnt/casper/filesystem.squashfs && mv squashfs-root edit | |
- name: copy network | |
run: sudo cp /etc/resolv.conf edit/etc/resolv.conf && sudo cp /etc/hosts edit/etc/ | |
- name: bind | |
run: sudo mount -o bind /run/ edit/run && sudo mount --bind /dev/ edit/dev | |
- name: under chroot environment | |
run: | | |
cat << EOF | script -e -c 'sudo chroot edit' | |
sudo mount -t proc none /proc && sudo mount -t devpts none /dev/pts | |
export HOME=/root && export LC_ALL=C | |
dbus-uuidgen | sudo tee /var/lib/dbus/machine-id && sudo dpkg-divert --local --rename --add /sbin/initctl && sudo ln -s /bin/true /sbin/initctl | |
sudo mv /etc/apt/apt.conf.d/90_zsys_system_autosnapshot /etc/apt/apt.conf.d/90_zsys_system_autosnapshot.disabled | |
sudo apt upgrade -y && sudo apt update -y | |
echo -e "\n" | sudo apt install -y git curl ca-certificates gnupg lsb-release | |
curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash - | |
curl https://sh.rustup.rs -sSf | sudo sh -y | |
mv .cargo /etc/skel | |
curl -OL https://go.dev/dl/go1.17.6.linux-amd64.tar.gz | |
sudo tar -C /usr/local -xzf go1.17.6.linux-amd64.tar.gz | |
export PATH=$PATH:/usr/local/go/bin | |
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg | |
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | |
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
curl -Lo vscode.deb "https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64 -o vscode.deb" | |
sudo apt-get update | |
echo -e "\n" | sudo apt install -y git curl nodejs docker-ce docker-ce-cli containerd.io ./vscode.deb | |
sudo apt clean && sudo rm -rf /tmp/* ~/.bash_history && sudo rm /etc/resolv.conf && sudo rm /var/lib/dbus/machine-id && sudo rm /sbin/initctl && sudo dpkg-divert --rename --remove /sbin/initctl | |
sudo umount /proc || sudo umount -lf /proc && sudo umount /dev/pts | |
exit | |
EOF | |
- name: chmod | |
run: chmod +w extract-cd/casper/filesystem.manifest | |
- name: renew manifest | |
run: sudo dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest | |
- name: modify file | |
run: sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop && sudo sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop && sudo sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop | |
- name: remove file | |
run: sudo rm extract-cd/casper/filesystem.squashfs | |
- name: mksquashfs | |
run: sudo mksquashfs edit extract-cd/casper/filesystem.squashfs -b 4096 | |
- name: file size | |
run: printf $(du -sx --block-size=1 edit | cut -f1) | sudo tee extract-cd/casper/filesystem.size | |
- name: md5sum | |
run: sudo rm md5sum.txt && find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt | |
working-directory: ./extract-cd | |
- name: mkisofs | |
run: sudo mkisofs -D -r -V ${{ env.CUSTOM_IMAGE_NAME }} -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../${{ env.CUSTOM_IMAGE_ISO }} . | |
working-directory: ./extract-cd | |
- name: split iso | |
run: split -b 1G -d ${{ env.CUSTOM_IMAGE_ISO }} ${{ env.CUSTOM_IMAGE_ISO }}- | |
- name: Create Release | |
run: | | |
gh release create ${GITHUB_REF##*/} -t "Releases ${GITHUB_REF##*/}" | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Upload Release Asset | |
run: | | |
gh release upload ${GITHUB_REF##*/} ./${{ env.CUSTOM_IMAGE_ISO }}-* | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |