Skip to content

sources reorg

sources reorg #280

Workflow file for this run

name: CMake
on:
push:
branches: [ "main" ]
env:
build_directory: ${{github.workspace}}/BUILD
build_type: Release
release_name: build_${{github.run_number}}
jobs:
build:
strategy:
matrix:
os: [windows-2022, ubuntu-22.04, macos-12]
platform: [32, 64]
exclude:
- os: ubuntu-22.04
platform: 32
- os: macos-12
platform: 32
runs-on: ${{matrix.os}}
steps:
- name: Customize Software (Linux)
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
sudo add-apt-repository --yes 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main'
sudo apt-get remove clang-14 lldb-14 lld-14 clang-tools-14 libc++-14-dev libc++abi-14-dev libc++1-14 libc++abi1-14 libunwind-14 libunwind-14-dev python3-lldb-14
sudo apt-get install clang-17 lldb-17 lld-17 clang-tools-17 libc++-17-dev libc++abi-17-dev
sudo ln -s /usr/lib/llvm-17/lib/clang/17 /usr/lib/llvm-17/lib/clang/17.0.0
wget http://mirrors.kernel.org/ubuntu/pool/universe/n/ninja-build/ninja-build_1.11.1-1_amd64.deb
sudo dpkg -i ninja-build_1.11.1-1_amd64.deb
sudo snap install cmake --classic
- name: Customize Software (macOS)
if: ${{ matrix.os == 'macos-12' }}
# ignore brew link warning, revert after https://github.com/actions/setup-python/issues/577 is fixed
run: |
brew install llvm || true
brew install ninja
brew install cmake
- name: Checkout
uses: actions/checkout@v3
with:
submodules: 'true'
- name: CMake Configure (win32)
if: ${{ matrix.os == 'windows-2022' && matrix.platform == 32 }}
run: cmake -B ${{env.build_directory}} -G "Visual Studio 17 2022" -A Win32 -DCMAKE_BUILD_TYPE=${{env.build_type}} -DREDUMPER_VERSION_BUILD=${{github.run_number}}
- name: CMake Configure (win64)
if: ${{ matrix.os == 'windows-2022' && matrix.platform == 64 }}
run: cmake -B ${{env.build_directory}} -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=${{env.build_type}} -DREDUMPER_VERSION_BUILD=${{github.run_number}}
- name: CMake Configure (linux64)
if: ${{ matrix.os == 'ubuntu-22.04' }}
env:
CC: clang-17
CXX: clang++-17
run: cmake -B ${{env.build_directory}} -G "Ninja" -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_BUILD_TYPE=${{env.build_type}} -DREDUMPER_VERSION_BUILD=${{github.run_number}} -DREDUMPER_CLANG_LINK_OPTIONS="-static"
- name: CMake Configure (macos64)
if: ${{ matrix.os == 'macos-12' }}
env:
CC: /usr/local/opt/llvm/bin/clang
CXX: /usr/local/opt/llvm/bin/clang++
run: cmake -B ${{env.build_directory}} -G "Ninja" -DCMAKE_BUILD_TYPE=${{env.build_type}} -DREDUMPER_VERSION_BUILD=${{github.run_number}} -DREDUMPER_CLANG_LINK_OPTIONS="-L/usr/local/opt/llvm/lib/c++"
- name: CMake Build
run: cmake --build ${{env.build_directory}} --config ${{env.build_type}}
- name: CTest
working-directory: ${{env.build_directory}}
run: ctest -C ${{env.build_type}}
- name: CPack
working-directory: ${{env.build_directory}}
run: cpack -G ZIP --config CPackConfig.cmake
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: ${{env.release_name}}
path: ${{env.build_directory}}/redumper-*.zip
release:
needs: build
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Download Artifact
uses: actions/download-artifact@v3
id: download
with:
name: ${{env.release_name}}
- name: 'Create Release'
shell: bash
run: |
for f in redumper-*.zip; do FILES+=" $f"; done
gh release create --generate-notes ${{ env.release_name }} $FILES
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}