Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
147 changes: 28 additions & 119 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,51 +5,24 @@ on:
branches: [main]

jobs:
# test-windows:
# runs-on: windows-latest
# steps:
# - name: Checkout project
# uses: actions/checkout@v3.0.0
# - name: Checkout submodules
# run: git submodule update --init --recursive
# - name: Setup nightly Zig
# uses: mlugg/setup-zig@v2
# with:
# version: 0.15.1
# - name: Build test ffi lib
# run: zig build-lib -dynamic tests/utils/foreign.zig && mv foreign.* tests/utils/

# - name: Build
# run: zig build && ls ./zig-out/lib/buzz

# - name: Run behavior tests Debug
# run: zig build test-behavior
# - name: Cleanup
# run: rm -rf zig-out zig-cache
# - name: Run behavior tests Debug with JIT always on
# run: zig build -Djit_always_on test && zig build -Djit_always_on test-behavior
# - name: Cleanup
# run: rm -rf zig-out zig-cache

# - name: Run behavior tests ReleaseSafe
# run: zig build -Doptimize=ReleaseSafe test && zig build -Doptimize=ReleaseSafe test-behavior
# - name: Cleanup
# run: rm -rf zig-out zig-cache
# - name: Run behavior tests ReleaseSafe with JIT always on
# run: zig build -Doptimize=ReleaseSafe -Djit_always_on test && zig build -Doptimize=ReleaseSafe -Djit_always_on test-behavior
# - name: Cleanup
# run: rm -rf zig-out zig-cache

# - name: Run behavior tests ReleaseFast
# run: zig build -Doptimize=ReleaseFast test && zig build -Doptimize=ReleaseFast test-behavior
# - name: Cleanup
# run: rm -rf zig-out zig-cache
# - name: Run behavior tests ReleaseFast with JIT always on
# run: zig build -Doptimize=ReleaseFast -Djit_always_on test && zig build -Doptimize=ReleaseFast -Djit_always_on test-behavior
# - name: Cleanup
# run: rm -rf zig-out zig-cache
test-macos:
runs-on: macos-latest
tests:
runs-on: ${{ matrix.operating-system }}

strategy:
fail-fast: false
matrix:
zig-version:
- "master"
operating-system: [ ubuntu-latest, macos-latest ]
optimize:
- "Debug"
- "ReleaseSafe"
- "ReleaseFast"
- "ReleaseSmall"
options:
- ""
- "-Djit_always_on"

steps:
- name: Install homebrew
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Expand All @@ -60,82 +33,17 @@ jobs:
- name: Setup nightly Zig
uses: mlugg/setup-zig@v2
with:
version: 0.15.1
- name: Build test ffi lib
run: zig build-lib -dynamic tests/utils/foreign.zig && mv libforeign.* tests/utils/

- name: Run behavior tests Debug
run: zig build test && zig build test-behavior
- name: Cleanup
run: rm -rf zig-out zig-cache

- name: Run behavior tests Debug with JIT always on
run: zig build -Djit_always_on test && zig build -Djit_always_on test-behavior
- name: Cleanup
run: rm -rf zig-out zig-cache

- name: Run behavior tests ReleaseSafe
run: zig build -Doptimize=ReleaseSafe test && zig build -Doptimize=ReleaseSafe test-behavior
- name: Cleanup
run: rm -rf zig-out zig-cache

- name: Run behavior tests ReleaseSafe with JIT always on
run: zig build -Doptimize=ReleaseSafe -Djit_always_on test && zig build -Doptimize=ReleaseSafe -Djit_always_on test-behavior
- name: Cleanup
run: rm -rf zig-out zig-cache

- name: Run behavior tests ReleaseFast
run: zig build -Doptimize=ReleaseFast test && zig build -Doptimize=ReleaseFast test-behavior
- name: Cleanup
run: rm -rf zig-out zig-cache

- name: Run behavior tests ReleaseFast with JIT always on
run: zig build -Doptimize=ReleaseFast -Djit_always_on test && zig build -Doptimize=ReleaseFast -Djit_always_on test-behavior
- name: Cleanup
run: rm -rf zig-out zig-cache
test-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout project
uses: actions/checkout@v3.0.0
- name: Checkout submodules
run: git submodule update --init --recursive
- name: Setup nightly Zig
uses: mlugg/setup-zig@v2
with:
version: 0.15.1
version: ${{ matrix.zig-version }}
- name: Build test ffi lib
run: zig build-lib -dynamic tests/utils/foreign.zig && mv libforeign.* tests/utils/

- name: Run behavior tests Debug
run: zig build test && zig build test-behavior
- name: Cleanup
run: rm -rf zig-out zig-cache

- name: Run behavior tests Debug with JIT always on
run: zig build -Djit_always_on test && zig build -Djit_always_on test-behavior
- name: Cleanup
run: rm -rf zig-out zig-cache

- name: Run behavior tests ReleaseSafe
run: zig build -Doptimize=ReleaseSafe test && zig build -Doptimize=ReleaseSafe test-behavior
- name: Cleanup
run: rm -rf zig-out zig-cache

- name: Run behavior tests ReleaseSafe with JIT always on
run: zig build -Doptimize=ReleaseSafe -Djit_always_on test && zig build -Doptimize=ReleaseSafe -Djit_always_on test-behavior
- name: Cleanup
run: rm -rf zig-out zig-cache

- name: Run behavior tests ReleaseFast
run: zig build -Doptimize=ReleaseFast test && zig build -Doptimize=ReleaseFast test-behavior
- name: Cleanup
run: rm -rf zig-out zig-cache

- name: Run behavior tests ReleaseFast with JIT always on
run: zig build -Doptimize=ReleaseFast -Djit_always_on test && zig build -Doptimize=ReleaseFast -Djit_always_on test-behavior
- name: Run tests ${{ matrix.optimize }}
run: zig build -Doptimize=${{ matrix.optimize }} ${{ matrix.options }} test
- name: Run behavior tests ${{ matrix.optimize }}
run: zig build -Doptimize=${{ matrix.optimize }} ${{ matrix.options }} test-behavior
- name: Cleanup
run: rm -rf zig-out zig-cache

wasm-build:
runs-on: ubuntu-latest
steps:
Expand All @@ -146,17 +54,18 @@ jobs:
- name: Setup nightly Zig
uses: mlugg/setup-zig@v2
with:
version: 0.15.1
version: master
- name: Build for wasm
run: zig build -Dtarget=wasm32-freestanding -freference-trace -Doptimize=ReleaseSmall
run: zig build -Dtarget=wasm32-freestanding -Doptimize=ReleaseSmall
- name: Cleanup
run: rm -rf zig-out zig-cache

lint:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3.0.0
- name: Setup nightly Zig
uses: mlugg/setup-zig@v2
with:
version: 0.15.1
version: master
- run: zig fmt --check src/*.zig src/**/*.zig
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@ tests/utils/libforeign.*
buzz_history

node_modules
out.txt
AGENTS.md
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ A small/lightweight statically typed scripting language written in Zig
## How to build and install

### Requirements
- Zig 0.15.1
- Zig 0.16.0-dev.732+2f3234c76
- Since this is built with Zig, you should be able to build buzz on a wide variety of architectures even though this has only been tested on x86/M1.
- Linux or macOS (Windows support [is coming](https://github.com/buzz-language/buzz/issues/74))
- libc
Expand Down
Loading
Loading