summaryrefslogtreecommitdiff
path: root/.github/workflows/canary.yaml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/canary.yaml')
-rw-r--r--.github/workflows/canary.yaml65
1 files changed, 65 insertions, 0 deletions
diff --git a/.github/workflows/canary.yaml b/.github/workflows/canary.yaml
new file mode 100644
index 0000000..2a4a795
--- /dev/null
+++ b/.github/workflows/canary.yaml
@@ -0,0 +1,65 @@
+name: canary
+
+on:
+ push:
+ branches: [ "master" ]
+
+jobs:
+ build:
+ name: ${{ matrix.artifact }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - os: ubuntu-latest
+ cc: gcc
+ artifact: libtinyff-linux-x86_64.a
+ - os: macos-latest
+ cc: clang
+ artifact: libtinyff-macos-aarch64.a
+ - os: windows-latest
+ cc: gcc
+ artifact: libtinyff-windows-x86_64.a
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Build
+ run: make CC=${{ matrix.cc }} USE_HOSTED=1
+
+ - name: Copy artifact
+ run: cp dist/libtinyff.a ${{ matrix.artifact }}
+
+ - name: Upload artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: ${{ matrix.artifact }}
+ path: ${{ matrix.artifact }}
+
+ release:
+ name: Publish canary
+ needs: build
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/download-artifact@v4
+
+ - name: Delete existing canary
+ run: gh release delete canary --yes --cleanup-tag || true
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ GH_REPO: ${{ github.repository }}
+
+ - name: Create canary release
+ uses: softprops/action-gh-release@v2
+ with:
+ tag_name: canary
+ name: "canary (${{ github.sha }})"
+ prerelease: true
+ make_latest: false
+ body: |
+ Automated canary build from `${{ github.sha }}`.
+ Built on ${{ github.event.head_commit.timestamp }}.
+
+ > ⚠️ This is a rolling prerelease. Not recommended for production use.
+ files: "**/*.a"