Updated the Circle CI release image #98
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: Build - X11 | |
on: [push, pull_request, workflow_dispatch] | |
env: | |
TOOLS_URL: https://github.com/mmatyas/pegasus-frontend/releases/download/alpha1 | |
QT_TARGET: x11-static | |
QT_VERSION: qt51512 | |
QT_VERSION_PRETTY: "5.15.12" | |
SDL_TARGET: x11-bionic | |
SDL_VERSION: "2.0.20" | |
jobs: | |
x11: | |
strategy: | |
matrix: | |
buildgen: [cmake, qmake, qmake-lcov] | |
runner: ['ubuntu-22.04'] | |
runs-on: ${{ matrix.runner }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: {submodules: 'recursive', fetch-depth: 0, fetch-tags: true} | |
- uses: actions/cache@v3 | |
with: | |
path: ~/.ccache | |
key: ccache-x11-${{ matrix.runner }}-${{ matrix.buildgen }}-${{ hashFiles('.github/workflows/x11.yml') }} | |
restore-keys: | | |
ccache-x11-${{ matrix.runner }}-${{ matrix.buildgen }} | |
ccache-x11-${{ matrix.runner }}- | |
ccache-x11- | |
ccache- | |
- name: APT deps | |
run: sudo apt-get update && sudo apt-get install -y libunwind-dev && sudo apt-get install -y | |
ccache | |
g++ | |
lcov | |
libasound-dev | |
libgl1-mesa-dev | |
libgstreamer-plugins-base1.0-dev | |
libpulse-dev | |
libsdl2-dev | |
libudev-dev | |
libxcb-glx0-dev | |
libxcb-icccm4-dev | |
libxcb-image0-dev | |
libxcb-keysyms1-dev | |
libxcb-randr0-dev | |
libxcb-render-util0-dev | |
libxcb-shape0-dev | |
libxcb-sync-dev | |
libxcb-util-dev | |
libxcb-xfixes0-dev | |
libxcb-xinerama0-dev | |
libxi-dev | |
libxkbcommon-dev | |
libxkbcommon-x11-dev | |
libzstd-dev | |
ninja-build | |
ruby | |
xvfb | |
- name: Get Qt | |
run: | | |
.circleci/prepare.sh | |
curl -L "${TOOLS_URL}/SDL2-${SDL_VERSION}_${SDL_TARGET}.tar.xz" | tar xJf - -C /opt/ | |
/opt/${QT_VERSION}_${QT_TARGET}/bin/qmake --version | |
cmake --version | |
- run: gem install --user-install -N fpm | |
- run: ccache --show-stats | |
- name: Lint QML | |
run: find -name *.qml -exec /opt/${QT_VERSION}_${QT_TARGET}/bin/qmllint {} \; | |
- name: Configure (cmake) | |
if: matrix.buildgen == 'cmake' | |
run: cmake | |
-B build | |
-G Ninja | |
-DCMAKE_C_COMPILER_LAUNCHER=ccache | |
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache | |
-DCMAKE_PREFIX_PATH="/opt/${QT_VERSION}_${QT_TARGET};/opt/SDL2-${SDL_VERSION}" | |
-DCMAKE_CXX_FLAGS=-fdiagnostics-color=always | |
-DCMAKE_INSTALL_PREFIX=/usr/ | |
-DPEGASUS_ENABLE_APNG=ON | |
-DPEGASUS_STATIC_CXX=ON | |
- name: Build (cmake) | |
if: matrix.buildgen == 'cmake' | |
run: cmake --build build | |
- name: Test (cmake) | |
if: matrix.buildgen == 'cmake' | |
run: xvfb-run -a ctest --test-dir build --rerun-failed --output-on-failure | |
- name: Build (qmake) | |
env: | |
BUILDOPTS: | |
USE_SDL_GAMEPAD=1 | |
USE_SDL_POWER=1 | |
INSTALL_BINDIR=/usr/bin | |
INSTALL_ICONDIR=/usr/share/icons/hicolor | |
INSTALL_DESKTOPDIR=/usr/share/applications | |
INSTALL_APPSTREAMDIR=/usr/share/metainfo | |
INSTALL_DOCDIR=/usr/share/doc/pegasus-frontend | |
SDL_LIBS="-L/opt/SDL2-2.0.20/lib -lSDL2" | |
SDL_INCLUDES=/opt/SDL2-2.0.20/include/SDL2 | |
CONFIG+=ccache | |
INSTALL_BINDIR: /usr/bin/ | |
run: .circleci/build.sh && .circleci/objdump_linux.sh '' && .circleci/zip_linux.sh | |
if: matrix.buildgen == 'qmake' | |
- run: PATH="$PATH:/home/runner/.local/share/gem/ruby/3.0.0/bin" ../.travis/script__create_deb.sh | |
working-directory: dist | |
if: matrix.buildgen == 'qmake' | |
- name: Measure | |
if: matrix.buildgen == 'qmake-lcov' | |
run: xvfb-run -a .travis/script__build_with_lcov.sh | |
- name: Send to Coveralls | |
if: matrix.buildgen == 'qmake-lcov' | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: coverage.clean | |
- name: Upload artifact | |
if: matrix.buildgen == 'qmake' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: x11-static | |
path: dist | |
- name: Deploy | |
if: matrix.buildgen == 'qmake' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.ref == 'refs/heads/master' | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
external_repository: mmatyas/pegasus-deploy-staging | |
personal_token: ${{ secrets.PEGASUS_GHACTIONS_TOKEN }} | |
publish_branch: continuous-x11-static | |
publish_dir: ./dist | |
force_orphan: true |