Update wgpu-native to the latest HEAD #1534
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Release (macOS) | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- '*' | |
paths-ignore: | |
- '**.md' | |
pull_request: | |
types: [opened, synchronize, reopened, ready_for_review] | |
branches: | |
- main | |
paths-ignore: | |
- '**.md' | |
- 'changelog.lua' | |
- '.gitignore' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
if: github.event.pull_request.draft == false | |
name: Build for macOS | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-latest, macos-14] | |
include: | |
- os: macos-latest | |
arch: x64 | |
- os: macos-14 | |
arch: M1 | |
env: | |
MACOSX_DEPLOYMENT_TARGET: 10.13 | |
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 # Prevent brew updates in the ccache setup step (~2GB download ...) | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
fetch-depth: "0" # Required so that git describe actually works (and we can embed the version tag) | |
- name: Set up ccache | |
uses: hendrikmuhs/ccache-action@v1.2 | |
- name: Install Ninja | |
run: brew install ninja | |
- name: Configure environment | |
run: | | |
echo "CC=ccache gcc" >> $GITHUB_ENV | |
echo "CXX=ccache g++" >> $GITHUB_ENV | |
- name: Build luajit | |
run: deps/luajit-unixbuild.sh && ls ninjabuild-unix | |
- name: Generate versions.lua # Required for those libraries that don't export versioning information | |
run: deps/discover-submodule-versions.sh && cat deps/versions.lua | |
- name: Build wgpu | |
run: deps/wgpu-unixbuild.sh && ls ninjabuild-unix | |
- name: Build luv and libuv | |
run: deps/luv-unixbuild.sh && ls ninjabuild-unix | |
- name: Build glfw | |
run: deps/glfw-unixbuild.sh && ls ninjabuild-unix | |
- name: Build miniz | |
run: deps/miniz-unixbuild.sh && ls ninjabuild-unix | |
# Building OpenSSL is extremely slow, so nproc is used to determine the number of parallel jobs | |
- name: Install GNU coreutils | |
run: brew install coreutils | |
- name: Build openssl | |
run: deps/openssl-unixbuild.sh && ls ninjabuild-unix | |
- name: Build rapidjson | |
run: deps/rapidjson-unixbuild.sh && ls ninjabuild-unix | |
- name: Build lua-openssl | |
run: deps/luaopenssl-unixbuild.sh && ls ninjabuild-unix | |
- name: Build zlib | |
run: deps/zlib-unixbuild.sh && ls ninjabuild-unix | |
- name: Build pcre | |
run: deps/pcre-unixbuild.sh && ls ninjabuild-unix | |
- name: Build uwebsockets | |
run: deps/uws-unixbuild.sh && ls ninjabuild-unix | |
- name: Build RmlUI with FreeType | |
run: deps/rml-unixbuild.sh && ls ninjabuild-unix | |
- name: Build LabSound | |
run: deps/labsound-unixbuild.sh && ls ninjabuild-unix | |
- name: Build runtime | |
run: ls && ./unixbuild.sh && ls ninjabuild-unix && cp ninjabuild-unix/evo . && ls | |
- name: Add executable to PATH | |
run: echo "$(pwd)" >> $GITHUB_PATH | |
- name: Run smoke tests | |
run: evo Tests/smoke-test.lua | |
- name: Run snapshot tests | |
run: evo Tests/snapshot-test.lua | |
- name: Run unit tests | |
run: evo Tests/unit-test.lua | |
- name: Run integration tests | |
run: evo Tests/integration-test.lua | |
- name: Run benchmarks | |
run: evo .github/run-all-benchmarks.lua | |
- name: Prepare artifacts | |
run: cp evo evo-macos-${{ matrix.arch }} | |
# GitHub adds a heading of their own, so remove the duplicate | |
- name: Generate CHANGELOG.MD | |
run: evo create-changelog.lua && tail -n +3 CHANGELOG.MD > CHANGELOG-GITHUB.MD && mv CHANGELOG-GITHUB.MD CHANGELOG.MD | |
- name: Publish new release | |
# Truly "continuous" releases may be overkill here, so better only release tagged versions | |
if: startsWith(github.ref, 'refs/tags/v') | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: evo-macos-${{ matrix.arch }} | |
body_path: CHANGELOG.MD | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |