summaryrefslogtreecommitdiff
path: root/.github/workflows/zen.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/zen.yml')
-rw-r--r--.github/workflows/zen.yml49
1 files changed, 49 insertions, 0 deletions
diff --git a/.github/workflows/zen.yml b/.github/workflows/zen.yml
index f2cc47a..9fb1326 100644
--- a/.github/workflows/zen.yml
+++ b/.github/workflows/zen.yml
@@ -3,6 +3,7 @@ name: Zen-C CI
on:
push:
branches: [ "main" ]
+ tags: [ "v*" ]
pull_request:
branches: [ "main" ]
@@ -12,9 +13,57 @@ jobs:
matrix:
os: [macos-15-intel, ubuntu-24.04]
runs-on: ${{ matrix.os }}
+ permissions:
+ contents: write
steps:
- uses: actions/checkout@v4
- name: make
run: make
- name: make test
run: make test
+ - name: APE dependencies
+ if: matrix.os == 'ubuntu-24.04'
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y zip wget
+
+ - name: Setup cosmocc
+ if: matrix.os == 'ubuntu-24.04'
+ run: |
+ wget https://cosmo.zip/pub/cosmocc/cosmocc.zip
+ mkdir -p $HOME/cosmocc
+ unzip cosmocc.zip -d $HOME/cosmocc
+ echo "$HOME/cosmocc/bin" >> $GITHUB_PATH
+
+ - name: Build APE
+ if: matrix.os == 'ubuntu-24.04'
+ run: |
+ # Ensure PATH is updated and build with tag-aware versioning
+ export PATH="$HOME/cosmocc/bin:$PATH"
+ make clean
+ make ape
+
+ - name: Upload zc.com Artifact
+ if: matrix.os == 'ubuntu-24.04'
+ uses: actions/upload-artifact@v4
+ with:
+ name: zc-portable
+ path: out/bin/zc.com
+
+ - name: Upload zc-boot.com Artifact
+ if: matrix.os == 'ubuntu-24.04'
+ uses: actions/upload-artifact@v4
+ with:
+ name: zc-boot-portable
+ path: out/bin/zc-boot.com
+
+ - name: Create Release
+ if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'ubuntu-24.04'
+ uses: softprops/action-gh-release@v2
+ with:
+ files: |
+ out/bin/zc.com
+ out/bin/zc-boot.com
+ draft: false
+ prerelease: false
+ generate_release_notes: true