Add workflow for making releases
This commit is contained in:
parent
5e4d45a9d4
commit
af456e6c11
2 changed files with 169 additions and 3 deletions
161
.github/workflows/release.yml
vendored
Normal file
161
.github/workflows/release.yml
vendored
Normal file
|
@ -0,0 +1,161 @@
|
|||
name: release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "v*.*.*"
|
||||
|
||||
jobs:
|
||||
linux-x86:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- 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)
|
||||
mv build/qjs build/qjs-linux-x86
|
||||
- name: check
|
||||
shell: alpine.sh {0}
|
||||
run: |
|
||||
file build/qjs-linux-x86
|
||||
- name: upload
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: qjs
|
||||
path: build/qjs-linux-x86
|
||||
|
||||
linux-x86_64:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- 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)
|
||||
mv build/qjs build/qjs-linux-x86_64
|
||||
- name: check
|
||||
shell: alpine.sh {0}
|
||||
run: |
|
||||
file build/qjs-linux-x86_64
|
||||
- name: upload
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: qjs
|
||||
path: build/qjs-linux-x86_64
|
||||
|
||||
macos:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: build
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" ..
|
||||
make -j$(getconf _NPROCESSORS_ONLN)
|
||||
mv qjs qjs-darwin
|
||||
- name: check
|
||||
run: |
|
||||
lipo -info build/qjs-darwin
|
||||
- name: upload
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: qjs
|
||||
path: build/qjs-darwin
|
||||
|
||||
windows-x86:
|
||||
runs-on: windows-latest
|
||||
defaults:
|
||||
run:
|
||||
shell: msys2 {0}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- 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
|
||||
- name: check
|
||||
run: |
|
||||
ldd build/qjs-windows-x86.exe
|
||||
- name: upload
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: qjs
|
||||
path: build/qjs-windows-x86.exe
|
||||
|
||||
windows-x86_64:
|
||||
runs-on: windows-latest
|
||||
defaults:
|
||||
run:
|
||||
shell: msys2 {0}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- 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
|
||||
- name: check
|
||||
run: |
|
||||
ldd build/qjs-windows-x86_64.exe
|
||||
- name: upload
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: qjs
|
||||
path: build/qjs-windows-x86_64.exe
|
||||
|
||||
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-linux-x86_64
|
||||
build/qjs/qjs-linux-x86
|
||||
build/qjs/qjs-windows-x86.exe
|
||||
build/qjs/qjs-windows-x86_64.exe
|
||||
build/qjs/qjs-darwin
|
|
@ -69,6 +69,7 @@ if(BUILD_SHARED_LIBS)
|
|||
endif()
|
||||
|
||||
xoption(BUILD_EXAMPLES "Build examples" OFF)
|
||||
xoption(BUILD_STATIC_QJS_EXE "Build a static qjs executable" OFF)
|
||||
xoption(CONFIG_ASAN "Enable AddressSanitizer (ASan)" OFF)
|
||||
xoption(CONFIG_MSAN "Enable MemorySanitizer (MSan)" OFF)
|
||||
xoption(CONFIG_UBSAN "Enable UndefinedBehaviorSanitizer (UBSan)" OFF)
|
||||
|
@ -180,9 +181,13 @@ set_target_properties(qjs_exe PROPERTIES
|
|||
)
|
||||
target_compile_definitions(qjs_exe PRIVATE ${qjs_defines})
|
||||
target_link_libraries(qjs_exe ${qjs_libs})
|
||||
if(MINGW)
|
||||
target_link_options(qjs_exe PRIVATE -static -static-libgcc)
|
||||
else()
|
||||
if(BUILD_STATIC_QJS_EXE OR MINGW)
|
||||
target_link_options(qjs_exe PRIVATE -static)
|
||||
if(MINGW)
|
||||
target_link_options(qjs_exe PRIVATE -static-libgcc)
|
||||
endif()
|
||||
endif()
|
||||
if(NOT MINGW)
|
||||
set_target_properties(qjs_exe PROPERTIES ENABLE_EXPORTS TRUE)
|
||||
endif()
|
||||
|
||||
|
|
Loading…
Reference in a new issue