# This workflow will build an Arch Linux ISO file with the commit on it name: build parchiso per release on: release: types: - created env: api_key: ${{ secrets.GITHUB_TOKEN }} name: ${{ github.event.repository.name }} release_name: ${{ github.ref_name }} GH_TOKEN: ${{ github.token }} HOST: ${{ secrets.SSH_HOST }} jobs: build-beta: if: github.event.release.prerelease == true permissions: contents: write runs-on: ubuntu-latest container: image: archlinux:latest options: --privileged steps: - uses: actions/checkout@v3 - name: Install Packages via Pacman run: pacman -Sy; pacman --noconfirm -S git archiso python python-pygithub github-cli reflector p7zip openssh sshpass rsync wget - name: Build image run: | mkdir out cd out touch ParchLinux.gnome.beta.iso # mkarchiso -v iso/ - name: create .ssh folder run: mkdir ~/.ssh - name: generate ssh-key run: ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts - name: remove last iso run: sshpass -p "${{ secrets.SSH_PASS }}" ssh root@$HOST rm -rf /srv/http/test/ - name: remove last iso run: sshpass -p "${{ secrets.SSH_PASS }}" ssh root@$HOST mkdir /srv/http/test/ - name: rename iso run: mv "$(ls out/*.iso)" out/Parchlinux-test-latest.iso - name: upload iso to host run: sshpass -p "${{ secrets.SSH_PASS }}" rsync -r "out/$(ls out/*.iso)" root@${{ secrets.SSH_HOST }}:/srv/http/test - name: Upload iso to the release run: | cd ./out mkdir iso_parts # split -d -b 2000M "$(ls *.iso)" iso_parts/"$(ls *.iso)"_part #zip -s 2000m iso_parts/"$(ls *.iso)".zip "$(ls *.iso)" 7z -v1000m a iso_parts/"$(ls *.iso)".zip "$(ls *.iso)" md5sum iso_parts/* > iso_parts/md5sums.txt gh release upload ${{ github.event.release.tag_name }} ./iso_parts/* -R ${{ github.repository }} build: if: github.event.release.prerelease == false permissions: contents: write runs-on: ubuntu-latest container: image: archlinux:latest options: --privileged steps: - uses: actions/checkout@v3 - name: Install Packages via Pacman run: pacman -Sy; pacman --noconfirm -S git archiso python python-pygithub github-cli reflector p7zip openssh sshpass rsync - name: Build image run: mkarchiso -v iso/ - name: create .ssh folder run: mkdir ~/.ssh - name: generate ssh-key run: ssh-keyscan -H {{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts - name: remove last iso run: sshpass -p "{{ secrets.SSH_PASS }}" ssh root@{{ secrets.SSH_HOST }} bash -c "rm -rf /srv/http/test/*" - name: rename iso run: mv "$(ls out/*.iso)" out/Parchlinux-test-latest.iso - name: upload iso to host run: sshpass -p "{{ secrets.SSH_PASS }}" rsync -r "out/$(ls out/*.iso)" root@{{ secrets.SSH_HOST }}:/srv/http/test - name: Upload iso to the release run: | cd ./out mkdir iso_parts # split -d -b 2000M "$(ls *.iso)" iso_parts/"$(ls *.iso)"_part #zip -s 2000m iso_parts/"$(ls *.iso)".zip "$(ls *.iso)" 7z -v1000m a iso_parts/"$(ls *.iso)".zip "$(ls *.iso)" md5sum iso_parts/* > iso_parts/md5sums.txt gh release upload ${{ github.event.release.tag_name }} ./iso_parts/* -R ${{ github.repository }}