Update Docker CI image #13
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: Update Docker CI image | |
| on: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: "0 0 * * 0" | |
| permissions: | |
| packages: write | |
| jobs: | |
| build-image: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: docker/login-action@v4 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Write Dockerfile | |
| run: | | |
| cat > /tmp/Dockerfile <<EOF | |
| FROM archlinux:latest | |
| # TEMPORARY (remove once the upstream qmlformat regression is fixed): pin to the | |
| # 2026-05-13 Arch archive snapshot to hold qmlformat at qt6-declarative 6.11.0. | |
| # qt6-declarative 6.11.1 silently crashes qmlformat (exit 1, empty output) on QML files | |
| # that declare a property named 'id'. To unpin: delete the mirrorlist line below and | |
| # change 'pacman -Syyuu' back to 'pacman -Syu'. | |
| RUN echo 'Server = https://archive.archlinux.org/repos/2026/05/13/\$repo/os/\$arch' > /etc/pacman.d/mirrorlist && \ | |
| pacman -Syyuu --needed --noconfirm sudo base-devel cmake ninja fish git clazy qt6-declarative qt6-shadertools python libpipewire aubio libqalculate && \ | |
| useradd -m builder && \ | |
| echo 'builder ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \ | |
| sudo -u builder git clone https://aur.archlinux.org/yay-bin.git /home/builder/yay-bin && \ | |
| cd /home/builder/yay-bin && \ | |
| sudo -u builder makepkg -si --noconfirm && \ | |
| sudo -u builder yay -S --noconfirm quickshell-git libcava && \ | |
| sudo -u builder yay -Yc --noconfirm && \ | |
| pacman -Rns --noconfirm yay-bin && \ | |
| sed -i '/builder ALL=(ALL) NOPASSWD:ALL/d' /etc/sudoers && \ | |
| userdel -r builder && \ | |
| pacman -Scc --noconfirm | |
| EOF | |
| - name: Build and push | |
| uses: docker/build-push-action@v7 | |
| with: | |
| context: . | |
| file: /tmp/Dockerfile | |
| push: true | |
| tags: ghcr.io/${{ github.repository_owner }}/shell-arch-env:latest |