Skip to content

Commit 0941fe7

Browse files
Update README.md
1 parent 6a680b1 commit 0941fe7

File tree

1 file changed

+92
-19
lines changed

1 file changed

+92
-19
lines changed

README.md

Lines changed: 92 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
2+
```markdown
33
# Arch Linux Without the Beeps
44

55
This repository provides a customized Arch Linux ISO with the system beeps disabled, ideal for users who prefer a quieter environment.
@@ -9,43 +9,114 @@ This repository provides a customized Arch Linux ISO with the system beeps disab
99
- **Silent Mode**: The systemd-boot beep and other annoying beeps are completely disabled.
1010
- **Arch Linux Base**: Built on the latest Arch Linux, providing a clean and minimal system.
1111
- **Custom ISO**: Easily build and download a custom ISO with this configuration.
12-
- **Daily Automated Build**: ISO builds are automatically generated and released daily.
12+
- **Daily Automated Build**: ISO builds are automatically generated and released daily (if using GitHub Actions).
1313

14-
## Workflow Overview
14+
---
1515

16-
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:
16+
## How to Build the ISO Locally
1717

18-
1. **Checkout Repository**: Pulls the latest files from the repository.
19-
2. **Build Environment Setup**: A Docker container simulates the Arch Linux environment.
20-
3. **Build ISO**: The Arch ISO is customized and built using `mkarchiso`.
21-
4. **Upload ISO**: The ISO is uploaded as a release on GitHub with a version tag.
22-
5. **Silent Configuration**: Ensures that system beeps are turned off across all configurations.
18+
If you prefer to build the Arch Linux ISO locally, you can use Docker to set up a containerized environment. Here's how:
2319

24-
## How to Use
20+
### Prerequisites
21+
22+
Make sure you have Docker installed on your system.
23+
24+
### Steps to Build Locally
2525

2626
1. **Clone the repository**:
2727

2828
```bash
2929
git clone https://github.com/Githubguy132010/Arch-Linux-without-the-beeps.git
30+
cd Arch-Linux-without-the-beeps
31+
```
32+
33+
2. **Build the Docker Image**:
34+
35+
Build the Docker image, which will be used to build the ISO.
36+
37+
```bash
38+
docker build -t arch-iso-builder .
3039
```
31-
2. **Run the workflow**
3240

33-
You can run the workflow manually by going to Actions > Build ISO and click on run Workflow.
34-
Keep in mind you are going to need a PAT (Personal access Token) and you need to edit the Workflow to reflect your PAT.
41+
3. **Run the Docker Container**:
42+
43+
This step will run the container and automatically build the ISO. The resulting ISO will be saved in the `out/` directory.
44+
45+
```bash
46+
docker run --rm -v $(pwd):/workdir arch-iso-builder
47+
```
48+
49+
4. **Retrieve the ISO**:
50+
51+
Once the process completes, the ISO will be available in the `out/` directory within your local folder as `Arch.iso`.
52+
53+
### Dockerfile Used for Local Builds
54+
55+
The following `Dockerfile` is used to build the ISO locally:
56+
57+
```Dockerfile
58+
# Use the official Arch Linux image as the base
59+
FROM archlinux:latest
3560

61+
# Update system and install necessary packages
62+
RUN pacman -Syu --noconfirm && \
63+
pacman -S --noconfirm git archiso grub
3664

37-
3. **Automated Workflow**: The GitHub Actions workflow automatically triggers on:
65+
# Create a directory for the workspace
66+
WORKDIR /workdir
67+
68+
# Copy the entire repository into the container
69+
COPY . .
70+
71+
# Build the Arch ISO
72+
RUN mkarchiso -v -w workdir/ -o out/ .
73+
74+
# Rename the generated ISO to Arch.iso (if only one ISO is generated)
75+
RUN iso_file=$(ls out/*.iso | head -n 1) && \
76+
mv $iso_file out/Arch.iso
77+
78+
# Set the output directory as a volume so you can retrieve the ISO later
79+
VOLUME /workdir/out
80+
81+
# The default command just keeps the container running
82+
CMD [ "sleep", "infinity" ]
83+
```
84+
85+
---
86+
87+
## How to Use GitHub Actions (Automated Workflow)
88+
89+
This repository also includes a GitHub Actions workflow for building and releasing the ISO automatically on GitHub.
90+
91+
### How It Works:
92+
93+
1. **Automated Workflow**: The workflow is triggered by:
3894
- **Pushes** and **Pull Requests** to the `main` branch
3995
- **Scheduled daily builds** at midnight (UTC)
4096

41-
4. **Download the ISO**:
97+
2. **Download the ISO**:
4298
- Visit the [releases page](https://github.com/Githubguy132010/Arch-Linux-without-the-beeps/releases) to download the latest ISO.
4399

100+
### GitHub Actions Workflow Overview
44101

102+
The GitHub Actions workflow automatically builds and releases the ISO. Here’s a quick overview:
45103

46-
## GitHub Actions Workflow
104+
1. **Checkout Repository**: Pulls the latest files from the repository.
105+
2. **Build Environment Setup**: A Docker container simulates the Arch Linux environment.
106+
3. **Build ISO**: The Arch ISO is customized and built using `mkarchiso`.
107+
4. **Upload ISO**: The ISO is uploaded as a release on GitHub with a version tag.
108+
5. **Silent Configuration**: Ensures that system beeps are turned off across all configurations.
47109

48-
The workflow file for building and releasing the custom ISO is located at `.github/workflows/build.yml`. Here's the workflow snippet:
110+
### How to Trigger the GitHub Workflow
111+
112+
1. **Run the workflow manually**:
113+
You can run the workflow manually by going to **Actions > Build ISO** and clicking on **Run Workflow**.
114+
115+
Keep in mind that you will need a Personal Access Token (PAT) and to modify the workflow file to include your PAT.
116+
117+
### GitHub Actions Workflow Example
118+
119+
Here's the full GitHub Actions workflow used for automated builds and releases:
49120

50121
```yaml
51122
name: Build ISO
@@ -92,7 +163,7 @@ jobs:
92163
docker cp arch-container:/workdir/out/Arch.iso ${{ github.workspace }}/
93164
94165
- name: Create GitHub Release
95-
uses: actions/[email protected].0
166+
uses: actions/[email protected].4
96167
env:
97168
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
98169
with:
@@ -109,7 +180,7 @@ jobs:
109180
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
110181
with:
111182
upload_url: ${{ steps.create_release.outputs.upload_url }}
112-
asset_path: ${{ github.workspace }}/ArchGUI-NoBeeps.iso
183+
asset_path: ${{ github.workspace }}/Arch.iso
113184
asset_name: Arch.iso
114185
asset_content_type: application/octet-stream
115186

@@ -119,6 +190,8 @@ jobs:
119190
docker rm arch-container
120191
```
121192
193+
---
194+
122195
## License
123196
124197
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

0 commit comments

Comments
 (0)