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-24.04 steps: - name: Cache build directory uses: actions/cache@v4 with: path: ~/build/ key: ${{runner.os}}-ct-ng-1.26.0 - 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/.local/share/gem/ruby/*/bin >> $GITHUB_PATH - name: Check out repository code uses: actions/checkout@v4 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@v4 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 release: name: Release needs: [binaries] runs-on: ubuntu-24.04 if: github.ref_type == 'tag' steps: - name: Download packages uses: actions/download-artifact@v4 with: name: ejabberd-packages - name: Draft Release uses: softprops/action-gh-release@v2 with: draft: true files: ejabberd-packages/*