Update README.md #27
  
    
      This file contains hidden or 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
    
  
  
    
  | name: Build ISO | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| pull_request: | |
| branches: [ "main" ] | |
| workflow_dispatch: | |
| schedule: | |
| # Run the workflow on the 1st of every month at midnight | |
| - cron: 0 0 * * * | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest # Use a standard runner | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Arch Linux Container | |
| run: | | |
| docker run --privileged --name arch-container -d -v ${{ github.workspace }}:/workdir archlinux:latest sleep infinity | |
| - name: Build ISO in Arch Container | |
| run: | | |
| docker exec arch-container bash -c " | |
| pacman -Syu --noconfirm && | |
| pacman -S --noconfirm git archiso grub && | |
| cd /workdir && | |
| mkarchiso -v -w workdir/ -o out/ . | |
| " | |
| - name: Rename ISO to Arch.iso | |
| run: | | |
| docker exec arch-container bash -c " | |
| # Find the created ISO (assuming only one .iso file in the output directory) | |
| iso_file=\$(ls /workdir/out/*.iso | head -n 1) && | |
| mv \$iso_file /workdir/out/Arch.iso | |
| " | |
| - name: List ISO files | |
| run: | | |
| # List files in the output directory to verify renaming | |
| docker exec arch-container bash -c "ls -l /workdir/out/" | |
| - name: Copy ISO to Host | |
| run: | | |
| # Copy the renamed ISO to the host | |
| docker cp arch-container:/workdir/out/Arch.iso ${{ github.workspace }}/ | |
| - name: Get current date | |
| id: date | |
| run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT | |
| # Create a release on GitHub using Personal Access Token (PAT) | |
| - name: Create GitHub Release | |
| id: create_release # Adding an ID to reference the release step | |
| uses: actions/[email protected] | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} | |
| with: | |
| tag_name: v${{ github.run_id }}-release | |
| release_name: "Arch Linux Release" | |
| body: | | |
| This release contains the Arch Linux ISO built on ${{ steps.date.outputs.date }}. | |
| draft: false | |
| prerelease: false | |
| # Upload the ISO to the GitHub release with a specific, predictable name | |
| - name: Upload ISO to GitHub Release | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} # Fixing the upload_url reference | |
| asset_path: ${{ github.workspace }}/Arch.iso | |
| asset_name: Arch.iso | |
| asset_content_type: application/octet-stream | |
| - name: Clean Up | |
| run: | | |
| docker stop arch-container | |
| docker rm arch-container |