blob: 987c7f6836c2bc7c632a36bd41d7a0f2e1cdc3be (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
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: ${{matrix.container}} (${{matrix.cc}} ${{matrix.build-system}})
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++"]
build-system: ["autotools", "meson"]
include:
- container: "archlinux:latest"
build-system: "autotools"
cc: "clang"
cxx: "clang++"
- container: "archlinux:latest"
build-system: "meson"
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@v4
with:
submodules: "true"
- name: Install dependency packages
run: .github/workflows/${{ env.DISTRO }}.sh
- name: Enable ccache to speed up builds
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ env.DISTRO }}-${{ matrix.cc }}
# INFO: M-C-C depends mate-desktop 1.27.1+, so we should install it from source.
- name: Cache mate-desktop binary packages
uses: actions/cache@v3
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: M-C-C depends mate-desktop 1.27.1+, install finished.
- name: Build the source code
run: .github/workflows/builds.sh ${{ matrix.build-system }}
|