diff options
Diffstat (limited to '.github/workflows/build.yml')
| -rw-r--r-- | .github/workflows/build.yml | 280 |
1 files changed, 0 insertions, 280 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index d1febfd6..00000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,280 +0,0 @@ -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.workflow }}-${{ github.event.pull_request.number || github.head_ref || github.sha }} - cancel-in-progress: true - -env: - MATE_PANEL_DEP: 1.28.2 - CONFIGURE_FLAGS: --enable-compile-warnings=maximum - CFLAGS: -g -O2 -Werror=pointer-arith -Werror=implicit-function-declaration - JOBS: 2 - DEBUG: 1 - # Useful URL: https://github.com/mate-desktop/debian-packages - # Useful URL: https://salsa.debian.org/debian-mate-team/mate-panel - DEB_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 - libsoup-3.0-dev - libwnck-3-dev - libx11-dev - libxrandr-dev - # mate-desktop dependencies - DEB_LIBRARY_DEPS_MATE_DESKTOP: | - libgirepository1.0-dev - DEB_BUILD_DEPS: | - ccache - autoconf-archive - autopoint - gir1.2-freedesktop - git - gobject-introspection - gtk-doc-tools - lsb-release - make - mate-common - meson - yelp-tools - # mate-desktop dependencies - DEB_BUILD_DEPS_MATE_DESKTOP: | - iso-codes - gobject-introspection - # TODO - DEB_SCAN_BUILD_DEPS: | - clang - clang-tools - # Useful URL: https://git.archlinux.org/svntogit/community.git/tree/mate-panel - ARCH_BUILD_DEPS: | - ccache - autoconf-archive - clang - gcc - git - glib2-devel - gobject-introspection - gtk-layer-shell - itstool - libcanberra - libmateweather - libsm - libwnck3 - make - mate-common - mate-desktop - mate-menus - meson - which - yelp-tools - # mate-desktop dependencies - ARCH_BUILD_DEPS_MATE_DESKTOP: | - iso-codes - gobject-introspection - -jobs: - build: - name: Build on ${{matrix.container}} with in-process=${{matrix.in-process}} (using ${{matrix.cc}}) - runs-on: ubuntu-latest - container: ${{matrix.container}} - - strategy: - fail-fast: false # don't cancel other jobs in the matrix if one fails - matrix: - in-process: [all, none] - container: ['debian:testing', 'ubuntu:rolling', 'archlinux:latest'] - cc: ['gcc'] - cxx: ['g++'] - include: - # test with clang on archlinux:latest - - container: 'archlinux:latest' - cc: 'clang' - cxx: 'clang++' - in-process: all - - container: 'archlinux:latest' - cc: 'clang' - cxx: 'clang++' - in-process: none - - env: - # Speed up build with ccache - CC: ccache ${{matrix.cc}} - CXX: ccache ${{matrix.cxx}} - # root install path for the mate-desktop dependency - MATE_DESKTOP_INSTALL_PATH: ${{github.workspace}}/mate-desktop-install - - steps: - # We can't *extend* the environment in 'env' directly, so use GITHUB_ENV - # output variable to do so. - - name: Setup environment - run: | - echo "PATH=${MATE_DESKTOP_INSTALL_PATH}/bin:${PATH}" >> "$GITHUB_ENV" - echo "PKG_CONFIG_PATH=${MATE_DESKTOP_INSTALL_PATH}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" - - # Debugging - - name: Show environment - run: env | sort - if: ${{ env.DEBUG == '1' }} - - # For Debian and Ubuntu (apt-based with reasonably compatible packages) - - name: Install dependencies - if: ${{ startsWith(matrix.container, 'debian:') || startsWith(matrix.container, 'ubuntu:') }} - run: | - apt-get update -qq - apt-get install --assume-yes --no-install-recommends \ - ${DEB_BUILD_DEPS} ${DEB_BUILD_DEPS_MATE_DESKTOP} \ - ${DEB_LIBRARY_DEPS} ${DEB_LIBRARY_DEPS_MATE_DESKTOP} - - # For ArchLinux - - name: Install dependencies - if: ${{ startsWith(matrix.container, 'archlinux:') }} - # don't upgrade, although told otherwise (see link below), because - # apparently in the container it doesn't quit work... - # https://wiki.archlinux.org/title/System_maintenance#Partial_upgrades_are_unsupported - run: | - pacman --noconfirm -Syu - pacman --noconfirm -S ${ARCH_BUILD_DEPS} ${ARCH_BUILD_DEPS_MATE_DESKTOP} - - # Checkout the repository - - uses: actions/checkout@v3 - with: - path: mate-panel - submodules: true - - # Setup ccache cache - - name: ccache - uses: hendrikmuhs/[email protected] - with: - key: ${{ github.job }}-${{ matrix.container }}-${{ matrix.cc }} - - # Cache the build of the mate-desktop dependency - - name: Cache mate-desktop v${{env.MATE_PANEL_DEP}} dependency - uses: actions/cache@v3 - id: cache-mate-desktop - with: - path: ${{env.MATE_DESKTOP_INSTALL_PATH}} - # We try and be as specific as possible not to use the wrongly cached - # build, as this is a *binary*. - key: ${{runner.os}}-${{runner.arch}}-${{matrix.container}}-build-mate-desktop-${{env.MATE_PANEL_DEP}} - - # Checkout mate-desktop dep, if not already cached - - name: Checkout mate-desktop v${{env.MATE_PANEL_DEP}} - uses: actions/checkout@v3 - if: ${{ steps.cache-mate-desktop.outputs.cache-hit != 'true' }} - with: - repository: mate-desktop/mate-desktop - ref: v${{env.MATE_PANEL_DEP}} - path: mate-desktop - submodules: true - - # Build and install mate-desktop dep, if not already cached - - name: Install mate-desktop v${{env.MATE_PANEL_DEP}} - if: ${{ steps.cache-mate-desktop.outputs.cache-hit != 'true' }} - run: | - cd mate-desktop - NOCONFIGURE=1 ./autogen.sh - { ./configure --prefix="${MATE_DESKTOP_INSTALL_PATH}" || { cat config.log; exit 1; } ; } - make -j ${{ env.JOBS }} - make -j ${{ env.JOBS }} install - - # Follows regular mate-panel build and test steps - - - name: Configure - run: | - cd mate-panel - NOCONFIGURE=1 ./autogen.sh - { ./configure ${CONFIGURE_FLAGS} --with-in-process-applets=${{matrix.in-process}} || { 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 - # We only run distcheck on one container, because it takes time and - # doesn't seem so useful to repeat everywhere -- it mostly checks the - # build system itself, rather than the build. - if: ${{ startsWith(matrix.container, 'debian:') }} - 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 ${DEB_LIBRARY_DEPS} ${DEB_LIBRARY_DEPS_MATE_DESKTOP} - - # - define relevant configuration I can think of - # - X11-related stuff - # - Wayland-related stuff - # - in-process for Wayland - # - optional features - # - _Noreturn: this is to avoid false positive with functions that - # don't return, like g_assert(false). Here, we rely on G_NORETURN - # (GLib 2.68+) using _Noreturn C11 attribute if __STDC_VERSION__ is - # high enough (cppcheck sets it for us in newer versions, but not on - # here yet); but the version of cppcheck we run on don't know about - # the C11 attribute, so map it to the GCC one it does know. - # This is a tad over-specific, but it removes some spurious warnings, - # and defining e.g. __GNUC__=12 is simpler, but is a *lot* slower - # (more than 3 times slower), and doesn't seem to yield other - # benefits for the moment. - # - -I flags from pkg-config (grepped from configure.ac) - # - ignore non-source directories - - name: cppcheck - env: - checks: warning,style,performance,portability,information,missingInclude - defines: > - -DHAVE_X11 -DHAVE_RANDR - -DHAVE_WAYLAND - -DCLOCK_INPROCESS -DFISH_INPROCESS -DNOTIFICATION_AREA_INPROCESS -DWNCKLET_INPROCESS - -DHAVE_LANGINFO_H -DHAVE_NL_LANGINFO - -DGETTEXT_PACKAGE="mate-panel" - -D__STDC_VERSION__=201112 -D_Noreturn=__attribute__((__noreturn__)) - packages: > - gdk-pixbuf-2.0 - gio-unix-2.0 - gmodule-2.0 - gtk+-3.0 - ice - libwnck-3.0 - mate-desktop-2.0 - sm - run: | - cppcheck --enable="$checks" \ - -j $JOBS \ - $defines \ - $(pkg-config --cflags-only-I $packages) \ - -i gtk-layer-shell-build \ - -i mate-panel/mate-submodules/ \ - . |
