Skip to content

Commit c0e9fa3

Browse files
committed
feat: add 4-platform Homebrew formula with automated updates
- Support macOS (Intel/ARM) and Linux (x86-64/ARM64) - Add ERB template with proper Homebrew DSL - Add Ruby-based formula generator with Octokit - Add automated update workflow via repository_dispatch - Add macOS and Linux test workflows - Fix regex pattern matching for asset discovery - Use standardized asset naming pattern
1 parent 33314cc commit c0e9fa3

2 files changed

Lines changed: 87 additions & 0 deletions

File tree

.github/workflows/linux.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Linux
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
8+
jobs:
9+
test-linux:
10+
name: Install on Linux
11+
runs-on: ${{ matrix.os }}
12+
strategy:
13+
fail-fast: false
14+
max-parallel: 6
15+
matrix:
16+
# Test all Linux platforms
17+
os: [ ubuntu-24.04, ubuntu-22.04, ubuntu-24.04-arm, ubuntu-22.04-arm ]
18+
concurrency:
19+
group: '${{ github.workflow }}-${{ matrix.os }}-${{ github.head_ref || github.ref_name }}'
20+
cancel-in-progress: true
21+
steps:
22+
- uses: actions/checkout@v4
23+
24+
# Install Homebrew on Linux
25+
- run: |
26+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
27+
test -d ~/.linuxbrew && eval "$(~/.linuxbrew/bin/brew shellenv)"
28+
test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
29+
test -r ~/.bash_profile && echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.bash_profile
30+
echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.profile
31+
echo "/home/linuxbrew/.linuxbrew/bin" >> $GITHUB_PATH
32+
33+
- run: brew update-reset
34+
35+
- name: Add local tap for testing
36+
run: brew tap expresslang/eengine $GITHUB_WORKSPACE
37+
38+
- run: |
39+
brew install --build-from-source --verbose expresslang/eengine/eengine
40+
41+
- run: which eengine
42+
43+
- run: eengine --version
44+
45+
- run: brew test --verbose expresslang/eengine/eengine
46+
47+
- run: brew uninstall expresslang/eengine/eengine

.github/workflows/macos.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: macOS
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
8+
jobs:
9+
test-macos:
10+
name: Install on macOS
11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
# macos-13: Intel; macos-14, macos-15: ARM64
15+
os: [ macos-15, macos-14, macos-13 ]
16+
runs-on: ${{ matrix.os }}
17+
concurrency:
18+
group: '${{ github.workflow }}-${{ matrix.os }}-${{ github.head_ref || github.ref_name }}'
19+
cancel-in-progress: true
20+
steps:
21+
- uses: actions/checkout@v4
22+
23+
- run: brew update-reset
24+
25+
- name: Add local tap for testing
26+
run: brew tap expresslang/eengine $GITHUB_WORKSPACE
27+
28+
- run: |
29+
brew install --build-from-source --verbose expresslang/eengine/eengine
30+
31+
- run: brew audit --strict --formula expresslang/eengine/eengine
32+
continue-on-error: true
33+
34+
- run: which eengine
35+
36+
- run: eengine --version
37+
38+
- run: brew test --verbose expresslang/eengine/eengine
39+
40+
- run: brew uninstall expresslang/eengine/eengine

0 commit comments

Comments
 (0)