Skip to content

Commit 342d56d

Browse files
committed
ci: release
1 parent 37cb850 commit 342d56d

1 file changed

Lines changed: 77 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Release new version
2+
3+
on:
4+
push:
5+
tags:
6+
- '[0-9]+.[0-9]+.[0-9]+'
7+
8+
jobs:
9+
release:
10+
name: Build and publish a release
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: write
14+
15+
steps:
16+
- name: Install Dependencies
17+
run: |
18+
head -v -n-0 /etc/apt/sources.list || :
19+
head -v -n-0 /etc/apt/sources.list.d/* || :
20+
# Workaround for https://github.com/orgs/community/discussions/120966
21+
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
22+
# Workaround for apparmor breaking bwrap by disabling unpriv userns
23+
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
24+
sudo systemctl reload apparmor
25+
# Dependencies
26+
sudo apt-get update
27+
sudo apt-get install -y libglib2.0-dev attr gettext bison dbus gtk-doc-tools \
28+
libfuse3-dev ostree libostree-dev libarchive-dev libzstd-dev libcap-dev libattr1-dev libdw-dev libelf-dev python3-pyparsing \
29+
libjson-glib-dev shared-mime-info desktop-file-utils libpolkit-agent-1-dev libpolkit-gobject-1-dev \
30+
libseccomp-dev libcurl4-openssl-dev libsystemd-dev libxml2-utils libgpgme11-dev gobject-introspection \
31+
libgirepository1.0-dev libappstream-dev libdconf-dev clang socat meson libdbus-1-dev e2fslibs-dev bubblewrap xdg-dbus-proxy \
32+
meson ninja-build libyaml-dev libstemmer-dev gperf itstool libmalcontent-0-dev libxau-dev libgdk-pixbuf2.0-dev openssl
33+
# One of the tests wants this
34+
sudo mkdir /tmp/flatpak-com.example.App-OwnedByRoot
35+
36+
- name: Checkout the repository
37+
uses: actions/checkout@v4
38+
39+
- name: Build flatpak
40+
run: |
41+
meson setup _build
42+
meson dist -C _build
43+
44+
- name: Extract release information
45+
run: |
46+
# Extract the release version
47+
releaseVersion=`meson introspect --projectinfo _build/ | jq -r .version`
48+
echo "releaseVersion=$releaseVersion" | tee -a $GITHUB_ENV
49+
echo $releaseVersion
50+
51+
# Extract the changelog
52+
{
53+
echo "releaseChangelog<<EOF"
54+
perl -0777nE 'print $& if /(?<=\n\n).*?(?=\nChanges in)/sg' NEWS
55+
echo "\nEOF"
56+
} | tee -a $GITHUB_ENV
57+
echo $releaseChangelog
58+
59+
# Check if version is a pre-release
60+
preRelease=$((`echo $releaseVersion | cut -d '.' -f2` % 2))
61+
{
62+
echo -n "preRelease="
63+
if [ $preRelease = 1 ] || [ $preRelease = "true" ]; then
64+
echo "true";
65+
else
66+
echo "false";
67+
fi
68+
} | tee -a $GITHUB_ENV
69+
echo $preRelease
70+
71+
- name: Create release
72+
uses: ncipollo/release-action@v1.15.0
73+
with:
74+
tag: ${{ env.releaseVersion }}
75+
body: ${{ env.releaseChangelog }}
76+
prerelease: ${{ env.preRelease }}
77+
artifacts: _build/meson-dist/*

0 commit comments

Comments
 (0)