name: ISOBuilder # Controls when the action will run. on: # Triggers the workflow on push or pull request events for the main branch. push: branches: [ main ] pull_request: branches: [ main ] # Run workflow from the Action Tab. workflow_dispatch: jobs: build: # The type of runner that the job will run on runs-on: ubuntu-20.04 # Steps represent a sequence of tasks that will be executed as part of the job. steps: # Makes my repo accessible. - uses: actions/checkout@v2 - name: Downloading the latest Arch Linux ISO. run: curl -sL http://mirrors.mit.edu/archlinux/iso/latest/archlinux-2021.02.01-x86_64.iso > archlinux.iso - name: Installing mkisofs. run: sudo apt-get install mkisofs -y - name: Creating the ISO mountpoint. run: sudo mkdir ~/archiso - name: Mounting the ISO. run: sudo mount archlinux.iso ~/archiso - name: Copying the files from the ISO to a new folder. run: sudo cp -r ~/archiso ~/archiso_new - name: Extracting squashfs. run: sudo unsquashfs ~/archiso_new/arch/x86_64/airootfs.sfs - name: Setting up permissions. run: sudo chmod +x ~/work/easy-arch/easy-arch/easy-arch.sh - name: Copying easy-arch.sh script. run: sudo cp ~/work/easy-arch/easy-arch/easy-arch.sh ~/work/easy-arch/easy-arch/squashfs-root/root - name: Recreating squashfs. run: sudo mksquashfs ~/work/easy-arch/easy-arch/squashfs-root ~/airootfs.sfs - name: Removing the old airootfs.sfs. run: sudo rm -rf ~/archiso_new/arch/x86_64/airootfs.sfs - name: Copying the modified airootfs.sfs into the new ISO. run: sudo mv ~/airootfs.sfs ~/archiso_new/arch/x86_64/ - name: Creating the new Arch Linux ISO. run: sudo mkisofs -lJR -o archlinux_easy.iso ~/archiso_new/ - uses: actions/upload-artifact@v2 with: name: archlinux_easy.iso path: ~/work/easy-arch/easy-arch/archlinux_easy.iso