aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/installers.yml
blob: c7b27645fd0ac4b57e1b0c58fde2f0c0125a07c1 (plain) (blame)
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
name: Installers

on:
  push:
    paths-ignore:
    - '.devcontainer/**'
    - 'examples/**'
    - 'lib/**'
    - 'man/**'
    - 'priv/**'
    - '**.md'
  pull_request:
    paths-ignore:
    - '.devcontainer/**'
    - 'examples/**'
    - 'lib/**'
    - 'man/**'
    - 'priv/**'
    - '**.md'

jobs:
  binaries:
    name: Binaries
    runs-on: ubuntu-latest
    steps:
      - name: Cache build directory
        uses: actions/cache@v3
        with:
          path: ~/build/
          key: ${{runner.os}}-ct-ng-1.25.0-RC2
      - name: Install prerequisites
        run: |
          sudo apt-get -qq update
          sudo apt-get -qq install makeself
          # https://github.com/crosstool-ng/crosstool-ng/blob/master/testing/docker/ubuntu21.10/Dockerfile
          sudo apt-get -qq install build-essential autoconf bison flex gawk
          sudo apt-get -qq install help2man libncurses5-dev libtool libtool-bin
          sudo apt-get -qq install python3-dev texinfo unzip
      - name: Install FPM
        run: |
          gem install --no-document --user-install fpm
          echo $HOME/.gem/ruby/*/bin >> $GITHUB_PATH
      - name: Check out repository code
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: Build binary archives
        run: CHECK_DEPS=false tools/make-binaries
      - name: Build DEB and RPM packages
        run: tools/make-packages
      - name: Build installers
        run: tools/make-installers
      - name: Collect packages
        run: |
          mkdir ejabberd-packages
          mv ejabberd_*.deb ejabberd-*.rpm ejabberd-*.run ejabberd-packages
      - name: Upload packages
        uses: actions/upload-artifact@v3
        with:
          name: ejabberd-packages
          #
          # Appending the wildcard character ("*") is a trick to make
          # "ejabberd-packages" the root directory of the uploaded ZIP file:
          #
          # https://github.com/actions/upload-artifact#upload-using-multiple-paths-and-exclusions
          #
          path: ejabberd-packages*
          retention-days: 14