Merge remote-tracking branch 'upstream/insp3' into insp3 #35
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow has four tasks: | |
# | |
# 1. the first builds inspircd (with some optimizations for irctest), and uploads it | |
# to a temporary storage | |
# 2. the other three download the binary we just built, and run it through inspircd, | |
# with either Anope, Atheme, or runs service-independent tests | |
name: irctest | |
on: | |
pull_request: | |
push: | |
schedule: | |
- cron: 0 0 * * 0 | |
jobs: | |
build: | |
if: "!contains(github.event.head_commit.message, '[skip irctest ci]')" | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Checkout irctest | |
uses: actions/checkout@v4 | |
with: | |
path: irctest | |
ref: 59b2cd729b7785c3768e2ed8c4baa89472b45391 | |
repository: progval/irctest | |
- name: Run configure | |
run: ./configure --development --disable-auto-extras --prefix=$HOME/.local/ | |
# Speed-up build (6 min -> 5 min) | |
- name: Precompile inspircd.h | |
run: c++ -I vendor/ include/inspircd.h | |
- name: Build and install | |
env: | |
CXXFLAGS: -DINSPIRCD_UNLIMITED_MAINLOOP | |
run: make install --jobs $(($(getconf _NPROCESSORS_ONLN) + 1)) | |
- name: Make artifact tarball | |
run: |- | |
cd ~ | |
tar -czf artifacts-inspircd.tar.gz .local/ | |
- name: Upload build artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: installed-inspircd-for-irctest | |
path: ~/artifacts-inspircd.tar.gz | |
retention-days: 1 | |
test: | |
if: "!contains(github.event.head_commit.message, '[skip irctest ci]')" | |
runs-on: ubuntu-22.04 | |
needs: | |
- build | |
steps: | |
- name: Download build artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: installed-inspircd-for-irctest | |
path: "~" | |
- name: Unpack artifacts | |
run: |- | |
cd ~ | |
find -name 'artifacts-inspircd.tar.gz' -exec tar -xzf '{}' \; | |
- name: Checkout irctest | |
uses: actions/checkout@v4 | |
with: | |
path: irctest | |
ref: 59b2cd729b7785c3768e2ed8c4baa89472b45391 | |
repository: progval/irctest | |
- name: Install irctest dependencies | |
run: sudo apt-get install --assume-yes faketime python3-pytest | |
- name: Run irctest (no services) | |
if: matrix.services == 'no services' | |
run: PATH=$HOME/.local/bin:$PATH make -C irctest/ inspircd | |
# Can't apt-get install Anope if we want Insp4 support | |
- name: Checkout Anope | |
if: matrix.services == 'anope' | |
uses: actions/checkout@v4 | |
with: | |
path: anope | |
ref: 2.0.9 | |
repository: anope/anope | |
- name: Build and install Anope | |
if: matrix.services == 'anope' | |
run: | | |
cd $GITHUB_WORKSPACE/anope/ | |
cp $GITHUB_WORKSPACE/irctest/data/anope/* . | |
./Config -quick | |
make -C build --jobs $(($(getconf _NPROCESSORS_ONLN) + 1)) | |
make -C build install | |
- name: Run irctest (Anope services) | |
if: matrix.services == 'anope' | |
run: PATH=$HOME/.local/bin:$PATH make -C irctest/ inspircd-anope | |
- name: Install Atheme | |
if: matrix.services == 'atheme' | |
run: sudo apt-get install --assume-yes atheme-services | |
- name: Run irctest (Atheme services) | |
if: matrix.services == 'atheme' | |
run: PATH=$HOME/.local/bin:$PATH make -C irctest/ inspircd-atheme | |
strategy: | |
fail-fast: false | |
matrix: | |
services: | |
- no services | |
- anope | |
- atheme |