summaryrefslogtreecommitdiff
path: root/.github/workflows/builds.yml
diff options
context:
space:
mode:
authormbkma <[email protected]>2026-03-12 17:31:29 +0100
committerGitHub <[email protected]>2026-03-12 16:31:29 +0000
commitbe7ff2b29571a569905a3ea1d65fa213ebbcd406 (patch)
tree4feb986f1ed1f0ed7db125712d9cfb78f2ef9c8e /.github/workflows/builds.yml
parentd433bbd9aeb7ae3377e59c70f6608c3e29f9ebbc (diff)
downloadmate-applets-be7ff2b29571a569905a3ea1d65fa213ebbcd406.tar.bz2
mate-applets-be7ff2b29571a569905a3ea1d65fa213ebbcd406.tar.xz
ci: migrate from Travis CI to GitHub Actions
Replace Travis CI configuration with GitHub Actions workflows. Add CI build workflow for Debian, Fedora, Ubuntu, and Archlinux. Add release workflow for automated GitHub releases on tags. Add dependabot configuration for GHA pin updates. Remove obsolete .travis.yml. remove .build.yml fix invest applet makefile
Diffstat (limited to '.github/workflows/builds.yml')
-rw-r--r--.github/workflows/builds.yml92
1 files changed, 92 insertions, 0 deletions
diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml
new file mode 100644
index 00000000..150ab244
--- /dev/null
+++ b/.github/workflows/builds.yml
@@ -0,0 +1,92 @@
+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_DESKTOP_VERSION: 1.28.2
+ CACHE_PATH: /tmp/.cache
+
+jobs:
+ build:
+ name: Build on ${{matrix.container}} (using ${{matrix.cc}})
+ runs-on: ubuntu-latest
+ container:
+ image: ${{matrix.container}}
+ volumes:
+ - /tmp/.cache
+ - /var/cache/apt
+
+ strategy:
+ fail-fast: false # don't cancel other jobs in the matrix if one fails
+ matrix:
+ container:
+ [
+ "debian:testing",
+ "fedora:latest",
+ "ubuntu:rolling",
+ "archlinux:latest",
+ ]
+ cc: ["gcc"]
+ cxx: ["g++"]
+ include:
+ - container: "archlinux:latest"
+ cc: "clang"
+ cxx: "clang++"
+
+ env:
+ # Speed up build with ccache
+ CC: ccache ${{ matrix.cc }}
+ CXX: ccache ${{ matrix.cxx }}
+ CONTAINER: ${{ matrix.container }}
+
+ steps:
+ - name: Setup environment variables
+ id: distro-name
+ shell: bash
+ run: |
+ split=(${CONTAINER//:/ })
+ distro=${split[0]}
+ short_sha=${SHA:0:8}
+ echo "DISTRO=$distro" | tee -a $GITHUB_ENV
+ - name: Install git command
+ shell: bash
+ run: |
+ echo "::group::Install git ..."
+ apt-get update -qq && apt-get install --assume-yes git || true
+ dnf update -y && dnf install -y git || true
+ pacman --noconfirm -Sy git || true
+ echo "::endgroup::"
+ - name: Repository checkout
+ uses: actions/checkout@v5
+ - name: Install dependency packages
+ run: .github/workflows/${{ env.DISTRO }}.sh
+ - name: Enable ccache to speed up builds
+ uses: hendrikmuhs/[email protected]
+ with:
+ key: ${{ env.DISTRO }}-${{ matrix.cc }}
+
+ # INFO: Depends on mate-desktop 1.27.1+, so we should install it from source.
+ - name: Cache mate-desktop binary packages
+ uses: actions/cache@v5
+ id: cache-mate-desktop
+ with:
+ path: ${{ env.CACHE_PATH }}
+ key: ${{ env.DISTRO }}-build-mate-desktop-${{env.MATE_DESKTOP_VERSION}}
+ - name: Built and install mate-desktop from source
+ run: .github/workflows/mate-desktop.sh ${{env.MATE_DESKTOP_VERSION}} ${{ env.CACHE_PATH }}
+ # INFO: mate-desktop dependency install finished.
+
+ - name: Build the source code
+ run: .github/workflows/builds.sh