File: release.yml

package info (click to toggle)
flatpak 1.17.3-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 13,508 kB
  • sloc: ansic: 104,079; xml: 12,184; sh: 5,297; python: 2,315; yacc: 1,236; makefile: 84; csh: 20
file content (78 lines) | stat: -rw-r--r-- 2,978 bytes parent folder | download | duplicates (2)
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
name: Release new version

on:
  push:
    tags:
      - '[0-9]+.[0-9]+.[0-9]+'

jobs:
  release:
    name: Build and publish a release
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - name: Install Dependencies
        run: |
          head -v -n-0 /etc/apt/sources.list || :
          head -v -n-0 /etc/apt/sources.list.d/* || :
          # Workaround for https://github.com/orgs/community/discussions/120966
          sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
          # Workaround for apparmor breaking bwrap by disabling unpriv userns
          sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
          sudo systemctl reload apparmor
          # Dependencies
          sudo apt-get update
          sudo apt-get install -y libglib2.0-dev attr gettext bison  dbus gtk-doc-tools \
          libfuse3-dev ostree libostree-dev libarchive-dev libzstd-dev libcap-dev libattr1-dev libdw-dev libelf-dev python3-pyparsing \
          libjson-glib-dev shared-mime-info desktop-file-utils libpolkit-agent-1-dev libpolkit-gobject-1-dev \
          libseccomp-dev libcurl4-openssl-dev libsystemd-dev libxml2-utils libgpgme11-dev gobject-introspection \
          libgirepository1.0-dev libappstream-dev libdconf-dev clang socat meson libdbus-1-dev e2fslibs-dev bubblewrap xdg-dbus-proxy \
          meson ninja-build libyaml-dev libstemmer-dev gperf itstool libmalcontent-0-dev libxau-dev libgdk-pixbuf2.0-dev openssl
          # One of the tests wants this
          sudo mkdir /tmp/flatpak-com.example.App-OwnedByRoot

      - name: Checkout the repository
        uses: actions/checkout@v4

      - name: Build flatpak
        run: |
          meson setup _build
          meson dist -C _build

      - name: Extract release information
        run: |
          # Extract the release version
          releaseVersion=`meson introspect --projectinfo _build/ | jq -r .version`
          echo "releaseVersion=$releaseVersion" | tee -a $GITHUB_ENV
          echo $releaseVersion

          # Extract the changelog
          {
            echo "releaseChangelog<<EOF"
            perl -0777nE 'print $& if /(?<=\n\n).*?(?=\nChanges in)/sg' NEWS
            echo ""
            echo "EOF"
          } | tee -a $GITHUB_ENV
          echo $releaseChangelog

          # Check if version is a pre-release
          preRelease=$((`echo $releaseVersion | cut -d '.' -f2` % 2))
          {
            echo -n "preRelease="
            if [ $preRelease = 1 ] || [ $preRelease = "true" ]; then
              echo "true";
            else
              echo "false";
            fi
          } | tee -a $GITHUB_ENV
          echo $preRelease

      - name: Create release
        uses: ncipollo/release-action@v1.20.0
        with:
          tag: ${{ env.releaseVersion }}
          body: ${{ env.releaseChangelog }}
          prerelease: ${{ env.preRelease }}
          artifacts: _build/meson-dist/*
          immutableCreate: true