Skip to content

Commit e547a16

Browse files
authored
Merge pull request #22 from BarbUk/ci
ci + release workflow
2 parents 7610c12 + 147d32b commit e547a16

3 files changed

Lines changed: 62 additions & 6 deletions

File tree

.github/workflows/ci.yml

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ jobs:
2424
CC: ${{ matrix.compiler }}
2525
CXX: ${{ matrix.cxxcompiler }}
2626
LDFLAGS: -fuse-ld=${{ matrix.linker }}
27+
CCACHE_DIR: ${{ github.workspace }}/.ccache
2728
steps:
2829
- name: Checkout
29-
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
30+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3031
with:
3132
fetch-depth: 0
3233
persist-credentials: false
@@ -35,11 +36,11 @@ jobs:
3536
DEBIAN_FRONTEND: noninteractive
3637
run: |
3738
echo '::group::Update apt'
38-
sudo apt update
39+
sudo apt-get update
3940
echo '::endgroup::'
4041
4142
echo '::group::Install packages'
42-
sudo apt install -y --no-install-recommends \
43+
sudo apt-get install -y --no-install-recommends \
4344
gperf \
4445
libgnutls28-dev \
4546
libgtk-3-dev \
@@ -51,14 +52,22 @@ jobs:
5152
lld \
5253
clang \
5354
gcc-14 \
54-
g++-14
55+
g++-14 \
56+
ccache
5557
echo '::endgroup::'
58+
- name: Cache ccache
59+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
60+
with:
61+
path: "${CCACHE_DIR}"
62+
key: ${{ github.job }}-${{ matrix.compiler }}
63+
restore-keys: |
64+
${{ github.job }}-${{ matrix.compiler }}
5665
- name: Install GCC problem matcher
5766
uses: ammaraskar/gcc-problem-matcher@0f9c86f9e693db67dacf53986e1674de5f2e5f28 # 0.3.0
5867
- name: Build
5968
run: |
6069
echo '::group::Configure'
61-
meson --prefix /usr _build
70+
meson setup --prefix /usr _build -Dbuildtype=debugoptimized
6271
echo '::endgroup::'
6372
6473
echo '::group::Compile'

.github/workflows/release.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Release
2+
on:
3+
push:
4+
tags:
5+
- 'v*'
6+
permissions:
7+
id-token: write
8+
contents: read
9+
attestations: write
10+
jobs:
11+
build-and-release:
12+
name: Build and Release
13+
runs-on: ubuntu-24.04
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
17+
with:
18+
fetch-depth: 0
19+
persist-credentials: false
20+
- name: Install dependencies
21+
env:
22+
DEBIAN_FRONTEND: noninteractive
23+
run: |
24+
sudo apt-get update
25+
sudo apt-get install -y --no-install-recommends \
26+
ninja-build \
27+
meson \
28+
pigz
29+
- name: Build
30+
env:
31+
CC: gcc-14
32+
CXX: g++-14
33+
run: |
34+
meson setup _build -Dbuildtype=release
35+
- name: Prepare Assets
36+
run: |
37+
rm -rf _build
38+
tar cf - . | pigz > "/termite-${GITHUB_REF_NAME}.tar.gz"
39+
- name: Generate artifact attestation
40+
uses: actions/attest@59d89421af93a897026c735860bf21b6eb4f7b26 # v4.1.0
41+
with:
42+
subject-path: "/termite-${GITHUB_REF_NAME}.tar.gz"
43+
- name: Create Release
44+
run: |
45+
gh release create --generate-notes --verify-tag "${GITHUB_REF#refs/*/}" -t "${GITHUB_REF#refs/*/}" --draft "/termite-${GITHUB_REF_NAME}.tar.gz"
46+
env:
47+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
project('termite', 'c', 'cpp',
22
version: '16.12',
3-
meson_version: '>=0.61',
3+
meson_version: '>=0.63',
44
default_options: [
55
'b_asneeded=true',
66
'b_lundef=false',

0 commit comments

Comments
 (0)