Skip to content

Update README.md

Update README.md #28

Workflow file for this run

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