diff options
author | Colomban Wendling <[email protected]> | 2023-11-07 16:47:30 +0100 |
---|---|---|
committer | Colomban Wendling <[email protected]> | 2025-03-12 09:45:10 +0100 |
commit | 226a93c08ed599960d618082485aa6749f2e1d03 (patch) | |
tree | c1d7e9f98c62c06b9825f2b91788205a68543bc4 | |
parent | e2065669e8e992ebaf23433dfc979caea171ed89 (diff) | |
download | mate-panel-226a93c08ed599960d618082485aa6749f2e1d03.tar.bz2 mate-panel-226a93c08ed599960d618082485aa6749f2e1d03.tar.xz |
Enable a github actions build
-rw-r--r-- | .github/workflows/build.yml | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..ba54ca9e --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,147 @@ +name: CI Build + +on: + push: + branches: + - master + pull_request: + branches: + - master + workflow_dispatch: + +# cancel already running builds of the same branch or pull request +concurrency: + group: ci-${{ github.head_ref }} || concat(${{ github.ref }} + cancel-in-progress: true + +env: + CFLAGS: -g -O2 -Werror=pointer-arith -Werror=implicit-function-declaration + JOBS: 2 + DEBUG: 1 + LIBRARY_DEPS: | + libatk1.0-dev + libcairo2-dev + libdconf-dev + libgirepository1.0-dev + libglib2.0-dev + libgtk-3-dev + libgtk-layer-shell-dev + libice-dev + libmate-desktop-dev + libmate-menu-dev + libmateweather-dev + libpango1.0-dev + libsm-dev + libsoup2.4-dev + libwnck-3-dev + libx11-dev + libxrandr-dev + libgirepository1.0-dev + BUILD_DEPS: | + ccache + autoconf-archive + autopoint + gir1.2-freedesktop + git + gobject-introspection + gtk-doc-tools + lsb-release + make + mate-common + meson + yelp-tools + iso-codes + gobject-introspection + # TODO + SCAN_BUILD_DEPS: | + clang + clang-tools + +jobs: + build: + name: Build on Ubuntu + runs-on: ubuntu-latest + + env: + CC: ccache gcc + CXX: ccache g++ + BASE_INSTALL_PATH: ${{github.workspace}}/_install + + steps: + - name: Setup environment + run: | + echo "PATH=${BASE_INSTALL_PATH}/bin:${PATH}" >> "$GITHUB_ENV" + echo "PKG_CONFIG_PATH=${BASE_INSTALL_PATH}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" + + - name: Show environment + run: env | sort + if: ${{ env.DEBUG == '1' }} + + - uses: actions/checkout@v3 + with: + path: mate-panel + submodules: true + + - name: Checkout mate-desktop + uses: actions/checkout@v3 + with: + repository: mate-desktop/mate-desktop + ref: v1.27.1 + path: mate-desktop + submodules: true + + - name: Install dependencies + run: | + sudo apt-get update -qq + sudo apt-get install --assume-yes --no-install-recommends \ + ${BUILD_DEPS} ${LIBRARY_DEPS} + + - name: ccache + uses: hendrikmuhs/[email protected] + + - name: Configure mate-desktop + run: | + cd mate-desktop + NOCONFIGURE=1 ./autogen.sh + { ./configure --prefix="$BASE_INSTALL_PATH" || { cat config.log; exit 1; } ; } + + - name: Build mate-desktop + run: make -C mate-desktop -j ${{ env.JOBS }} + + - name: Install mate-desktop + run: make -C mate-desktop -j ${{ env.JOBS }} install + + - name: Configure + run: | + cd mate-panel + NOCONFIGURE=1 ./autogen.sh + { ./configure || { cat config.log; exit 1; } ; } + + - name: Build + run: make -C mate-panel -j ${{ env.JOBS }} + + - name: Run Tests + run: make -C mate-panel -j ${{ env.JOBS }} check + + - name: Run distcheck + run: make -C mate-panel -j ${{ env.JOBS }} distcheck + + # Do we need the real build for cppcheck run? I don't think so + cppcheck: + name: Run cppcheck + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + with: + submodules: true + + # Install code dependencies so that cppcheck has more info + - name: Install dependencies + run: | + sudo apt-get update -qq + sudo apt-get install --assume-yes --no-install-recommends \ + cppcheck ${LIBRARY_DEPS} + + - name: cppcheck + run: cppcheck --enable=warning,style,performance,portability,information,missingInclude -i'gtk-layer-shell-build' . |