Files
ejabberd/.github/workflows/installers.yml
T
Badlop d97366fe74
Container / build (amd64, <nil>) (push) Failing after 43s
Installers / binaries (amd64, <nil>) (push) Failing after 46s
CI / compile (27) (push) Has been cancelled
Container / build (arm64, -arm) (push) Has been cancelled
Installers / binaries (arm64, -arm) (push) Has been cancelled
Runtime / rebars (25, rebar) (push) Has been cancelled
Runtime / rebars (25, rebar3) (push) Has been cancelled
Runtime / rebars (26, rebar) (push) Has been cancelled
Runtime / rebars (26, rebar3) (push) Has been cancelled
Runtime / rebars (27, rebar3) (push) Has been cancelled
Runtime / rebars (28, rebar3) (push) Has been cancelled
Runtime / rebar3-elixir (1.14) (push) Has been cancelled
Runtime / rebar3-elixir (1.18) (push) Has been cancelled
Runtime / rebar3-elixir (1.19) (push) Has been cancelled
Runtime / mix (1.14) (push) Has been cancelled
Runtime / mix (1.18) (push) Has been cancelled
Runtime / mix (1.19) (push) Has been cancelled
CI / static (27) (push) Has been cancelled
CI / dynamic (27) (push) Has been cancelled
CI / ct (agnostic, 27, multi) (push) Has been cancelled
CI / ct (extauth, 27, multi) (push) Has been cancelled
CI / ct (ldap, 27, multi) (push) Has been cancelled
CI / ct (mnesia, 27, multi) (push) Has been cancelled
CI / ct (mysql, 27, multi) (push) Has been cancelled
CI / ct (mysql, 27, single) (push) Has been cancelled
CI / ct (pgsql, 27, multi) (push) Has been cancelled
CI / ct (pgsql, 27, single) (push) Has been cancelled
CI / ct (redis, 27, multi) (push) Has been cancelled
CI / ct (sqlite, 27, multi) (push) Has been cancelled
CI / ct (sqlite, 27, single) (push) Has been cancelled
CI / cover (push) Has been cancelled
CI / schema (27) (push) Has been cancelled
Container / merge (push) Has been cancelled
Installers / Release (push) Has been cancelled
Installers: Fix yaml syntax
2025-10-28 13:56:01 +01:00

112 lines
3.3 KiB
YAML

name: Installers
on:
push:
paths-ignore:
- '.devcontainer/**'
- 'examples/**'
- 'lib/**'
- 'man/**'
- 'priv/**'
- '**.md'
pull_request:
paths-ignore:
- '.devcontainer/**'
- 'examples/**'
- 'lib/**'
- 'man/**'
- 'priv/**'
- '**.md'
jobs:
binaries:
runs-on: ubuntu-22.04${{ matrix.suffix }}
strategy:
matrix:
platform: [amd64, arm64]
include:
- platform: amd64
suffix:
- platform: arm64
suffix: -arm
steps:
- name: Check out repository code
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Cache build directory
uses: actions/cache@v4
with:
path: ~/build/
key: installers-ubuntu-22.04-${{runner.arch}}-${{hashFiles('tools/make-binaries')}}
- 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: 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
- run: echo "rel_name_vsn=$(ls *.run | sed 's/-1-linux.*//g')" >> $GITHUB_OUTPUT
id: vsn
- name: Test RUN
uses: ./.github/actions/manage-ejabberd
with:
for: run
do: deploy, no_acme, start, register, stop, logs, check
username: user1
host: $(hostname --fqdn)
rel_name_vsn: ${{ steps.vsn.outputs.rel_name_vsn }}
- name: Test DEB
uses: ./.github/actions/manage-ejabberd
with:
for: deb
do: deploy, register, stop, logs
username: user1
host: $(hostname --fqdn)
rel_name_vsn: ${{ steps.vsn.outputs.rel_name_vsn }}
- name: Collect packages
run: |
mkdir ejabberd-packages
mv ejabberd_*.deb ejabberd-*.rpm ejabberd-*.run ejabberd-packages
- name: Upload packages
uses: actions/upload-artifact@v5
with:
name: ejabberd-packages-${{ matrix.platform }}
#
# 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-22.04
if: github.ref_type == 'tag'
steps:
- name: Download packages
uses: actions/download-artifact@v5
- name: Draft Release
uses: softprops/action-gh-release@v2
with:
draft: true
files: |
ejabberd-packages-amd64/*
ejabberd-packages-arm64/*