upload continuously #247
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: Tests | |
on: | |
push: | |
branches: | |
- "*" | |
pull_request: | |
branches: | |
- master | |
env: | |
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
BUILD_TYPE: Release | |
jobs: | |
check: | |
runs-on: ubuntu-latest | |
outputs: | |
deploy: ${{ steps.git.outputs.deploy }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install Python3 | |
run: | | |
sudo apt install -y python3 | |
- id: git | |
name: Check Commit Message | |
run: | | |
# Don't need tags to check if the commit message has | |
# the special commit. | |
echo "" /tmp/tags.txt | |
result=$(python3 scripts/check.py "$(git log -1 --pretty=%B)" "/tmp/tags.txt") | |
echo "deploy=$result" >> $GITHUB_OUTPUT | |
ubuntu: | |
needs: check | |
if: needs.check.outputs.deploy == 'false' | |
runs-on: ubuntu-${{ matrix.ubuntu_version }} | |
name: Ubuntu-${{ matrix.ubuntu_version }}-Qt-${{ matrix.qt_version }}-shared-${{ matrix.shared }} | |
strategy: | |
fail-fast: false | |
matrix: | |
ubuntu_version: [20.04, 22.04] | |
qt_version: [5.9.9, 5.15.2, 6.4.0] | |
shared: [ON, OFF] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: ${{ matrix.qt_version }} | |
cache: 'true' | |
cache-key-prefix: ${{ runner.os }}-Qt-Cache-${{ matrix.qt_version }} | |
dir: ${{ github.workspace }}/Qt | |
- name: Install LibArchive | |
run: | | |
mkdir build | |
cd build | |
git clone https://github.com/libarchive/libarchive | |
cd libarchive | |
git checkout "v3.5.1" | |
cmake -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" . | |
cmake --build . --config ${{env.BUILD_TYPE}} | |
sudo make install | |
cd .. | |
rm -rf libarchive | |
cd .. | |
sudo cp -fp /usr/local/lib/pkgconfig/libarchive.pc /usr/lib/pkgconfig/libarchive.pc | |
sudo cp -fp /usr/local/lib/libarchive.* /usr/lib/ | |
- name: Configure CMake | |
run: cmake -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DBUILD_SHARED_LIBS=${{ matrix.shared }} -DBUILD_TESTS=ON -B "${{github.workspace}}/build" | |
- name: Build | |
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | |
- name: Run tests | |
working-directory: ${{github.workspace}}/build/tests | |
run: "ctest --verbose" | |
macos: | |
needs: check | |
if: needs.check.outputs.deploy == 'false' | |
runs-on: macos-${{ matrix.macos_version }} | |
name: macos-${{ matrix.macos_version }}-Qt6-${{ matrix.qt6 }}-${{ matrix.shared }} | |
strategy: | |
fail-fast: false | |
matrix: | |
macos_version: [12] | |
qt6: ['enabled', 'disabled'] | |
shared: ['shared', 'static'] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Dependencies | |
run: brew install meson ninja qt6 qt5 | |
- name: Configure Meson | |
run: meson setup "${{github.workspace}}/build" -Ddefault_library=${{matrix.shared}} -Dqt6=${{matrix.qt6}} -Dpkg_config_path=/usr/local/opt/qt@5/lib/pkgconfig | |
- name: Build | |
run: meson compile -C "${{github.workspace}}/build" --verbose | |
- name: Run tests | |
run: meson test -C "${{github.workspace}}/build" --verbose | |
MSYS2: | |
needs: check | |
if: needs.check.outputs.deploy == 'false' | |
runs-on: windows-latest | |
name: MSYS2-${{matrix.platform}} | |
strategy: | |
matrix: | |
deps: ['enabled', 'disabled'] | |
platform: ['MINGW64', 'UCRT64', 'CLANG64'] | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{matrix.platform}} | |
pacboy: >- | |
cc:p | |
libarchive:p | |
meson:p | |
ninja:p | |
pkgconf:p | |
qt5-base:p | |
qt6-base:p | |
- name: Compile and Test | |
run: | | |
meson setup "${{github.workspace}}/build" -Dauto_features=${{matrix.deps}} -Dwarning_level=3 -Dcpp_std=c++20 | |
meson compile -C "${{github.workspace}}/build" --verbose | |
meson test -C "${{github.workspace}}/build" --verbose | |
Ubuntu-meson: | |
needs: check | |
if: needs.check.outputs.deploy == 'false' | |
runs-on: ubuntu-20.04 | |
name: Linux-GCC${{matrix.cxx}} | |
strategy: | |
matrix: | |
cxx: ['7', '13'] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: egor-tensin/setup-gcc@v1 | |
with: | |
version: ${{matrix.cxx}} | |
- name: Install meson | |
run: | | |
python3 -m pip install meson ninja | |
sudo apt install -y libarchive-dev qtbase5-dev | |
- name: Compile and Test | |
run: | | |
meson setup "${{github.workspace}}/build" -Dwarning_level=3 | |
meson compile -C "${{github.workspace}}/build" --verbose | |
meson test -C "${{github.workspace}}/build" --verbose | |
Ubuntu-meson-clang: | |
needs: check | |
if: needs.check.outputs.deploy == 'false' | |
runs-on: ubuntu-20.04 | |
name: Linux-Clang${{matrix.cxx}} | |
strategy: | |
matrix: | |
cxx: ['7', '17'] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: egor-tensin/setup-clang@v1 | |
with: | |
version: ${{matrix.cxx}} | |
- name: Install meson | |
run: | | |
python3 -m pip install meson ninja | |
sudo apt install -y libarchive-dev qtbase5-dev | |
- name: Compile and Test | |
run: | | |
meson setup "${{github.workspace}}/build" -Dwarning_level=3 | |
meson compile -C "${{github.workspace}}/build" --verbose | |
meson test -C "${{github.workspace}}/build" --verbose |