Skip to content

Commit

Permalink
Add workflow for making releases
Browse files Browse the repository at this point in the history
  • Loading branch information
saghul committed Nov 22, 2023
1 parent 1dcb61b commit 3044402
Show file tree
Hide file tree
Showing 2 changed files with 126 additions and 0 deletions.
122 changes: 122 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
name: release

on:
pull_request:

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: linux-x86
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: linux-x86_64
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: darwin
path: build/qjs-darwin

windows:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v3
- name: Setup MSYS2
uses: msys2/setup-msys2@v2
with:
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: windows-x86_64
path: build/qjs-windows-x86_64.exe

upload-to-release:
needs: [linux-x86, linux-x86_64, macos, windows]
runs-on: ubuntu-latest
steps:
- name: get assets
uses: actions/download-artifact@v3
with:
path: build
- name: upload to release
run: |
find .
echo "TODO"
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -180,6 +181,9 @@ set_target_properties(qjs_exe PROPERTIES
)
target_compile_definitions(qjs_exe PRIVATE ${qjs_defines})
target_link_libraries(qjs_exe ${qjs_libs})
if(BUILD_STATIC_QJS_EXE)
target_link_options(qjs_exe PRIVATE -static)
endif()
if(MINGW)
target_link_options(qjs_exe PRIVATE -static -static-libgcc)
else()
Expand Down

0 comments on commit 3044402

Please sign in to comment.