|
| 1 | +Here's the updated README with the workflow snippet included: |
| 2 | + |
| 3 | +--- |
| 4 | + |
| 5 | +# Arch Linux Without the Beeps |
| 6 | + |
| 7 | +This repository provides a customized Arch Linux ISO with the system bell (beeps) disabled, ideal for users who prefer a quieter environment. |
| 8 | + |
| 9 | +## Features |
| 10 | + |
| 11 | +- **Silent Mode**: The systemd-boot beep and other annoying beeps are completely disabled. |
| 12 | +- **Arch Linux Base**: Built on the latest Arch Linux, providing a clean and minimal system. |
| 13 | +- **Custom ISO**: Easily build and download a custom ISO with this configuration. |
| 14 | +- **Daily Automated Build**: ISO builds are automatically generated and released daily. |
| 15 | + |
| 16 | +## Workflow Overview |
| 17 | + |
| 18 | +This project uses GitHub Actions to automatically build and release an Arch Linux ISO with the system bell disabled. The workflow includes the following steps: |
| 19 | + |
| 20 | +1. **Checkout Repository**: Pulls the latest files from the repository. |
| 21 | +2. **Build Environment Setup**: A Docker container simulates the Arch Linux environment. |
| 22 | +3. **Build ISO**: The Arch ISO is customized and built using `mkarchiso`. |
| 23 | +4. **Upload ISO**: The ISO is uploaded as a release on GitHub with a version tag. |
| 24 | +5. **Silent Configuration**: Ensures that system beeps are turned off across all configurations. |
| 25 | + |
| 26 | +## How to Use |
| 27 | + |
| 28 | +1. **Clone the repository**: |
| 29 | + |
| 30 | + ```bash |
| 31 | + git clone https://github.com/Githubguy132010/Arch-Linux-without-the-beeps.git |
| 32 | + ``` |
| 33 | +2. **Run the workflow** |
| 34 | + |
| 35 | +You can run the workflow manually by going to Actions > Build ISO and click on run Workflow. |
| 36 | +Keep un mind you are going to need a PAT (Personal access Token) and you need to edit the Workflow to reflect your PAT. |
| 37 | + |
| 38 | +2. **Automated Workflow**: The GitHub Actions workflow automatically triggers on: |
| 39 | + - **Pushes** and **Pull Requests** to the `main` branch |
| 40 | + - **Scheduled daily builds** at midnight (UTC) |
| 41 | + |
| 42 | +3. **Download the ISO**: |
| 43 | + - Visit the [releases page](https://github.com/Githubguy132010/Arch-Linux-without-the-beeps/releases) to download the latest ISO. |
| 44 | + |
| 45 | +## Configuration Details |
| 46 | + |
| 47 | +This project disables the systemd-boot by modifying several configuration files. The changes are applied during the ISO build process. |
| 48 | + |
| 49 | + |
| 50 | +## GitHub Actions Workflow |
| 51 | + |
| 52 | +The workflow file for building and releasing the custom ISO is located at `.github/workflows/build-iso.yml`. Here's the workflow snippet: |
| 53 | + |
| 54 | +```yaml |
| 55 | +name: Build ISO Without Beeps |
| 56 | + |
| 57 | +on: |
| 58 | + push: |
| 59 | + branches: [ "main" ] |
| 60 | + pull_request: |
| 61 | + branches: [ "main" ] |
| 62 | + schedule: |
| 63 | + # Runs every day at midnight |
| 64 | + - cron: '0 0 * * *' |
| 65 | + |
| 66 | +jobs: |
| 67 | + build: |
| 68 | + runs-on: ubuntu-latest |
| 69 | + |
| 70 | + steps: |
| 71 | + - name: Checkout Repository |
| 72 | + uses: actions/checkout@v4 |
| 73 | + |
| 74 | + - name: Set up Arch Linux Container |
| 75 | + run: | |
| 76 | + docker run --privileged --name arch-container -d -v ${{ github.workspace }}:/workdir archlinux:latest sleep infinity |
| 77 | +
|
| 78 | + - name: Build ISO in Arch Container |
| 79 | + run: | |
| 80 | + docker exec arch-container bash -c " |
| 81 | + pacman -Syu --noconfirm && |
| 82 | + pacman -S --noconfirm git archiso grub && |
| 83 | + cd /workdir && |
| 84 | + mkarchiso -v -w workdir/ -o out/ . |
| 85 | + " |
| 86 | +
|
| 87 | + - name: Rename ISO to ArchGUI-NoBeeps.iso |
| 88 | + run: | |
| 89 | + docker exec arch-container bash -c " |
| 90 | + iso_file=\$(ls /workdir/out/*.iso | head -n 1) && |
| 91 | + mv \$iso_file /workdir/out/Arch.iso |
| 92 | + " |
| 93 | +
|
| 94 | + - name: Copy ISO to Host |
| 95 | + run: | |
| 96 | + docker cp arch-container:/workdir/out/Arch.iso ${{ github.workspace }}/ |
| 97 | + |
| 98 | + - name: Create GitHub Release |
| 99 | + |
| 100 | + env: |
| 101 | + GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} |
| 102 | + with: |
| 103 | + tag_name: v${{ steps.date.outputs.date }}-release |
| 104 | + release_name: ${{ steps.date.outputs.date }} |
| 105 | + body: | |
| 106 | + This release contains the Arch Linux ISO built on ${{ steps.date.outputs.date }} |
| 107 | + draft: false |
| 108 | + prerelease: false |
| 109 | + |
| 110 | + - name: Upload ISO to GitHub Release |
| 111 | + uses: actions/upload-release-asset@v1 |
| 112 | + env: |
| 113 | + GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} |
| 114 | + with: |
| 115 | + upload_url: ${{ steps.create_release.outputs.upload_url }} |
| 116 | + asset_path: ${{ github.workspace }}/ArchGUI-NoBeeps.iso |
| 117 | + asset_name: Arch.iso |
| 118 | + asset_content_type: application/octet-stream |
| 119 | + |
| 120 | + - name: Clean Up |
| 121 | + run: | |
| 122 | + docker stop arch-container |
| 123 | + docker rm arch-container |
| 124 | +``` |
| 125 | +
|
| 126 | +## License |
| 127 | +
|
| 128 | +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |
0 commit comments