aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
blob: cb46bccce44cb1a655bff1411c019c54d5674663 (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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
name: Build
on: [pull_request, push]
jobs:
  build:
    name: "Build"
    runs-on: ubuntu-24.04
    steps:
      - name: "Setup dependencies"
        run: |
          sudo apt-get update
          sudo apt-get remove libunwind-14-dev
          sudo apt-get install -y build-essential gettext libadwaita-1-dev libcanberra-dev libgcrypt20-dev libgee-0.8-dev libgpgme-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libgtk-4-dev libnice-dev libnotify-dev libqrencode-dev libomemo-c-dev libsoup-3.0-dev libsqlite3-dev libsrtp2-dev libwebrtc-audio-processing-dev meson valac
      - name: "Checkout sources"
        uses: actions/checkout@v7
        with:
          fetch-depth: 0
      - name: "Setup matchers"
        run: |
          echo '::add-matcher::${{ github.workspace }}/.github/matchers/gcc-problem-matcher.json'
          echo '::add-matcher::${{ github.workspace }}/.github/matchers/vala-problem-matcher.json'
          echo '::add-matcher::${{ github.workspace }}/.github/matchers/meson-problem-matcher.json'
      - name: "Configure"
        run: meson setup build
      - name: "Build"
        run: meson compile -C build
      - name: "Test"
        run: meson test -C build
  build-minimal:
    needs: build
    name: "Build with minimal features"
    runs-on: ubuntu-24.04
    steps:
      - name: "Setup dependencies"
        run: |
          sudo apt-get update
          sudo apt-get remove libunwind-14-dev
          sudo apt-get install -y build-essential gettext libadwaita-1-dev libcanberra-dev libgcrypt20-dev libgee-0.8-dev libgtk-4-dev libnice-dev libnotify-dev libsoup-3.0-dev libsqlite3-dev libsrtp2-dev meson valac
      - name: "Checkout sources"
        uses: actions/checkout@v7
        with:
          fetch-depth: 0
      - name: "Setup matchers"
        run: |
          echo '::add-matcher::${{ github.workspace }}/.github/matchers/gcc-problem-matcher.json'
          echo '::add-matcher::${{ github.workspace }}/.github/matchers/vala-problem-matcher.json'
          echo '::add-matcher::${{ github.workspace }}/.github/matchers/meson-problem-matcher.json'
      - name: "Configure"
        run: meson setup -Domemo=disabled -Drtp=disabled build
      - name: "Build"
        run: meson compile -C build
      - name: "Test"
        run: meson test -C build
  build-openssl:
    needs: build
    name: "Build with OpenSSL"
    runs-on: ubuntu-24.04
    steps:
      - name: "Setup dependencies"
        run: |
          sudo apt-get update
          sudo apt-get remove libunwind-14-dev
          sudo apt-get install -y build-essential gettext libadwaita-1-dev libcanberra-dev libssl-dev libgee-0.8-dev libgpgme-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libgtk-4-dev libnice-dev libnotify-dev libqrencode-dev libomemo-c-dev libsoup-3.0-dev libsqlite3-dev libsrtp2-dev libwebrtc-audio-processing-dev meson valac
      - name: "Checkout sources"
        uses: actions/checkout@v7
        with:
          fetch-depth: 0
      - name: "Setup matchers"
        run: |
          echo '::add-matcher::${{ github.workspace }}/.github/matchers/gcc-problem-matcher.json'
          echo '::add-matcher::${{ github.workspace }}/.github/matchers/vala-problem-matcher.json'
          echo '::add-matcher::${{ github.workspace }}/.github/matchers/meson-problem-matcher.json'
      - name: "Configure"
        run: meson setup -Dcrypto-backend=openssl build
      - name: "Build"
        run: meson compile -C build
      - name: "Test"
        run: meson test -C build
  build-vala-nightly:
    needs: build
    name: "Build with Vala Nightly"
    runs-on: ubuntu-24.04
    steps:
      - name: "Setup dependencies"
        run: |
          sudo apt-get update
          sudo apt-get remove libunwind-14-dev
          sudo apt-get install -y build-essential gettext libadwaita-1-dev libcanberra-dev libgcrypt20-dev libgee-0.8-dev libgpgme-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libgtk-4-dev libnice-dev libnotify-dev libqrencode-dev libomemo-c-dev libsoup-3.0-dev libsqlite3-dev libsrtp2-dev libwebrtc-audio-processing-dev meson valac
      - name: "Install Vala Nightly"
        run: |
          sudo apt-get install -y autoconf-archive gobject-introspection libgraphviz-dev
          git clone https://gitlab.gnome.org/GNOME/vala.git/ vala-nightly
          pushd vala-nightly
          ./autogen.sh --prefix=/usr
          make -j5
          sudo apt-get remove valac
          sudo apt-get autoremove
          sudo make install
          popd
          rm -rf vala-nightly
      - name: "Checkout sources"
        uses: actions/checkout@v7
        with:
          fetch-depth: 0
      - name: "Setup matchers"
        run: |
          echo '::add-matcher::${{ github.workspace }}/.github/matchers/gcc-problem-matcher.json'
          echo '::add-matcher::${{ github.workspace }}/.github/matchers/vala-problem-matcher.json'
          echo '::add-matcher::${{ github.workspace }}/.github/matchers/meson-problem-matcher.json'
      - name: "Configure"
        run: meson setup build
      - name: "Build"
        run: meson compile -C build
      - name: "Test"
        run: meson test -C build
  build-flatpak:
    needs: build
    name: "Build Flatpak"
    container:
      image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-49
      options: --privileged
    strategy:
      matrix:
        variant:
          - arch: x86_64
            runner: ubuntu-24.04
          - arch: aarch64
            runner: ubuntu-24.04-arm
    runs-on: ${{ matrix.variant.runner }}
    steps:
      - name: "Checkout sources"
        uses: actions/checkout@v7
        with:
          fetch-depth: 0
      - name: "Build"
        uses: flatpak/flatpak-github-actions/flatpak-builder@v6
        with:
          manifest-path: im.dino.Dino.json
          bundle: im.dino.Dino.flatpak
          arch: ${{ matrix.variant.arch }}