Skip to content
This repository was archived by the owner on Feb 21, 2026. It is now read-only.

Commit 17705f4

Browse files
committed
fix: generate tarball and expose inside of OCI image instead of generating github releases
Signed-off-by: Tulip Blossom <tulilirockz@outlook.com>
1 parent 1e8f0ef commit 17705f4

File tree

13 files changed

+142
-115
lines changed

13 files changed

+142
-115
lines changed

.github/workflows/brew-tarball.yml

Lines changed: 0 additions & 111 deletions
This file was deleted.

Containerfile

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1-
FROM docker.io/library/alpine:latest AS build
1+
FROM cgr.dev/chainguard/wolfi-base:latest AS builder
22

3-
RUN exit 1
3+
RUN apk add curl git zstd posix-libc-utils uutils gnutar grep bash-binsh && \
4+
curl --retry 3 -fsSLo "/tmp/brew-install" "https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh" && \
5+
touch /.dockerenv && \
6+
env --ignore-environment "PATH=/usr/bin:/bin:/usr/sbin:/sbin" "HOME=/home/linuxbrew" "NONINTERACTIVE=1" /usr/bin/bash /tmp/brew-install && \
7+
mkdir -p /out && \
8+
tar --zstd -cvf "/out/homebrew.tar.zst" "/home/linuxbrew/.linuxbrew"
49

510
FROM scratch AS ctx
6-
COPY /system_files/shared /system_files/shared/
7-
COPY --from=build /out/homebrew.tar.zstd /system_files/usr/share/homebrew.tar.zstd
11+
COPY system_files /system_files
12+
COPY --from=builder /out/homebrew.tar.zst /system_files/usr/share/homebrew.tar.zst
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/bin/sh
2+
# shellcheck shell=sh disable=SC1091,SC2039,SC2166
3+
# Check for interactive bash and that we haven't already been sourced.
4+
if [ "x${BASH_VERSION-}" != x -a "x${PS1-}" != x -a "x${BREW_BASH_COMPLETION-}" = x ]; then
5+
6+
# Check for recent enough version of bash.
7+
if [ "${BASH_VERSINFO[0]}" -gt 4 ] ||
8+
[ "${BASH_VERSINFO[0]}" -eq 4 -a "${BASH_VERSINFO[1]}" -ge 2 ]; then
9+
if [ -w /home/linuxbrew/.linuxbrew ]; then
10+
if ! test -L /home/linuxbrew/.linuxbrew/etc/bash_completion.d/brew; then
11+
/home/linuxbrew/.linuxbrew/bin/brew completions link > /dev/null
12+
fi
13+
fi
14+
if test -d /home/linuxbrew/.linuxbrew/etc/bash_completion.d; then
15+
for rc in /home/linuxbrew/.linuxbrew/etc/bash_completion.d/*; do
16+
if test -r "$rc"; then
17+
. "$rc"
18+
fi
19+
done
20+
unset rc
21+
fi
22+
fi
23+
BREW_BASH_COMPLETION=1
24+
export BREW_BASH_COMPLETION
25+
fi

system_files/etc/profile.d/brew.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/usr/bin/env bash
2+
[[ -d /home/linuxbrew/.linuxbrew && $- == *i* ]] && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#This file sets the resource limits for the users logged in via PAM,
2+
#more specifically, users logged in on via SSH or tty (console).
3+
#Limits related to terminals in Wayland/Xorg sessions depend on a
4+
#change to /etc/systemd/user.conf.
5+
#This does not affect resource limits of the system services.
6+
#This file overrides defaults set in /etc/security/limits.conf
7+
8+
* soft nofile 4096
9+
root soft nofile 4096
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
enable brew-setup.service
2+
enable brew-update.timer
3+
enable brew-upgrade.timer
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
[Unit]
2+
Description=Setup Brew
3+
Wants=basic.target
4+
After=basic.target
5+
ConditionPathExists=!/etc/.linuxbrew
6+
ConditionPathExists=!/var/home/linuxbrew/.linuxbrew
7+
ConditionPathExists=/usr/share/homebrew.tar.zst
8+
9+
[Service]
10+
Type=oneshot
11+
ExecStart=/usr/bin/mkdir -p /tmp/homebrew
12+
ExecStart=/usr/bin/mkdir -p /var/home/linuxbrew
13+
ExecStart=/usr/bin/tar --zstd -xvf /usr/share/homebrew.tar.zst -C /tmp/homebrew
14+
ExecStart=/usr/bin/cp -R -n /tmp/homebrew/home/linuxbrew/.linuxbrew /var/home/linuxbrew
15+
ExecStart=/usr/bin/chown -R 1000:1000 /var/home/linuxbrew
16+
ExecStart=/usr/bin/rm -rf /tmp/homebrew
17+
ExecStart=/usr/bin/touch /etc/.linuxbrew
18+
19+
[Install]
20+
WantedBy=default.target multi-user.target
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
[Unit]
2+
Description=Auto update brew for mutable brew installs
3+
After=local-fs.target
4+
After=network-online.target
5+
ConditionPathIsSymbolicLink=/home/linuxbrew/.linuxbrew/bin/brew
6+
7+
[Service]
8+
# Override the user if different UID/User
9+
User=1000
10+
Type=oneshot
11+
Environment=HOMEBREW_CELLAR=/home/linuxbrew/.linuxbrew/Cellar
12+
Environment=HOMEBREW_PREFIX=/home/linuxbrew/.linuxbrew
13+
Environment=HOMEBREW_REPOSITORY=/home/linuxbrew/.linuxbrew/Homebrew
14+
ExecStart=/usr/bin/bash -c "/home/linuxbrew/.linuxbrew/bin/brew update"
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[Unit]
2+
Description=Timer for brew update for mutable brew
3+
Wants=network-online.target
4+
5+
[Timer]
6+
OnBootSec=10min
7+
OnUnitInactiveSec=6h
8+
Persistent=true
9+
10+
[Install]
11+
WantedBy=timers.target
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
[Unit]
2+
Description=Upgrade Brew packages
3+
After=local-fs.target
4+
After=network-online.target
5+
ConditionPathIsSymbolicLink=/home/linuxbrew/.linuxbrew/bin/brew
6+
7+
[Service]
8+
# Override the user if different UID/User
9+
User=1000
10+
Type=oneshot
11+
Environment=HOMEBREW_CELLAR=/home/linuxbrew/.linuxbrew/Cellar
12+
Environment=HOMEBREW_PREFIX=/home/linuxbrew/.linuxbrew
13+
Environment=HOMEBREW_REPOSITORY=/home/linuxbrew/.linuxbrew/Homebrew
14+
ExecStart=/usr/bin/bash -c "/home/linuxbrew/.linuxbrew/bin/brew upgrade"
15+
# Prevent Brew from overriding important system binaries like:
16+
# systemctl, loginctl, dbus-*, python*
17+
ExecStartPost=-/usr/bin/bash -c "/home/linuxbrew/.linuxbrew/bin/brew unlink systemd"
18+
ExecStartPost=-/usr/bin/bash -c "/home/linuxbrew/.linuxbrew/bin/brew unlink dbus"
19+
ExecStartPost=-/usr/bin/bash -c "/home/linuxbrew/.linuxbrew/bin/brew unlink python"
20+
ExecStartPost=-/usr/bin/bash -c "/home/linuxbrew/.linuxbrew/bin/brew unlink gsettings"
21+
ExecStartPost=-/usr/bin/bash -c "/home/linuxbrew/.linuxbrew/bin/brew unlink bash"
22+
ExecStartPost=-/usr/bin/bash -c "/home/linuxbrew/.linuxbrew/bin/brew unlink rpm"

0 commit comments

Comments
 (0)