name: release on: push: tags: - "v*.*.*" jobs: linux-x86: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: jirutka/setup-alpine@v1 with: arch: x86 packages: "build-base make cmake" - name: build shell: alpine.sh {0} run: | mkdir build cd build cmake -DBUILD_STATIC_QJS_EXE=ON .. cd .. cmake --build build --target qjs_exe -j$(getconf _NPROCESSORS_ONLN) cmake --build build --target qjsc -j$(getconf _NPROCESSORS_ONLN) mv build/qjs build/qjs-linux-x86 mv build/qjsc build/qjsc-linux-x86 - name: check shell: alpine.sh {0} run: | file build/qjs-linux-x86 build/qjsc-linux-x86 - name: upload uses: actions/upload-artifact@v3 with: name: qjs path: build/*-linux-x86 linux-x86_64: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: jirutka/setup-alpine@v1 with: arch: x86_64 packages: "build-base make cmake" - name: build shell: alpine.sh {0} run: | mkdir build cd build cmake -DBUILD_STATIC_QJS_EXE=ON .. cd .. cmake --build build --target qjs_exe -j$(getconf _NPROCESSORS_ONLN) cmake --build build --target qjsc -j$(getconf _NPROCESSORS_ONLN) mv build/qjs build/qjs-linux-x86_64 mv build/qjsc build/qjsc-linux-x86_64 - name: check shell: alpine.sh {0} run: | file build/qjs-linux-x86_64 build/qjsc-linux-x86_64 - name: upload uses: actions/upload-artifact@v3 with: name: qjs path: build/*-linux-x86_64 macos: runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: build run: | mkdir build cd build cmake -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" .. make -j$(getconf _NPROCESSORS_ONLN) mv qjs qjs-darwin mv qjsc qjsc-darwin - name: check run: | lipo -info build/qjs-darwin build/qjsc-darwin - name: upload uses: actions/upload-artifact@v3 with: name: qjs path: build/*-darwin windows-x86: runs-on: windows-latest defaults: run: shell: msys2 {0} steps: - uses: actions/checkout@v4 - name: Setup MSYS2 uses: msys2/setup-msys2@v2 with: msystem: mingw32 install: >- git make pacboy: >- cmake:p ninja:p toolchain:p - name: build run: | make mv build/qjs.exe build/qjs-windows-x86.exe mv build/qjsc.exe build/qjsc-windows-x86.exe - name: check run: | ldd build/qjs-windows-x86.exe build/qjsc-windows-x86.exe - name: upload uses: actions/upload-artifact@v3 with: name: qjs path: build/*-windows-x86.exe windows-x86_64: runs-on: windows-latest defaults: run: shell: msys2 {0} steps: - uses: actions/checkout@v4 - name: Setup MSYS2 uses: msys2/setup-msys2@v2 with: msystem: mingw64 install: >- git make pacboy: >- cmake:p ninja:p toolchain:p - name: build run: | make mv build/qjs.exe build/qjs-windows-x86_64.exe mv build/qjsc.exe build/qjsc-windows-x86_64.exe - name: check run: | ldd build/qjs-windows-x86_64.exe build/qjsc-windows-x86_64.exe - name: upload uses: actions/upload-artifact@v3 with: name: qjs path: build/*-windows-x86_64.exe wasi: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: setup wasi-sdk run: | wget -nv https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-21/wasi-sdk_21.0_amd64.deb -P /tmp sudo apt install /tmp/wasi-sdk*.deb - name: build run: | cmake -B build -DCMAKE_TOOLCHAIN_FILE=/opt/wasi-sdk/share/cmake/wasi-sdk.cmake make -C build qjs_exe mv build/qjs build/qjs-wasi.wasm - name: upload uses: actions/upload-artifact@v3 with: name: qjs path: build/qjs-wasi.wasm upload-to-release: needs: [linux-x86, linux-x86_64, macos, windows-x86, windows-x86_64] runs-on: ubuntu-latest steps: - name: get assets uses: actions/download-artifact@v3 with: path: build - name: release uses: softprops/action-gh-release@v1 with: files: | build/qjs/qjs-* build/qjs/qjsc-*