12 Commits

Author SHA1 Message Date
e50cac1a39 Merge 6243908ecc2d11864b183101429f36121f4fe378 into aaa2e26b6e468112665ad7b15d144574a969b411 2024-06-24 11:42:41 -04:00
aaa2e26b6e Fix file name 2024-06-23 20:37:10 +02:00
052198c61b Add support for Hybrid > 8.2.44 (#283)
The module system changed, modules now need to be loaded explicitly
2024-06-21 21:38:16 +02:00
9f33633cc7 Fix the help filename as of the latest commit. (#282) 2024-06-17 19:15:02 +02:00
465f6637ed enable backtraces in sable (#280) 2024-06-15 08:25:14 +02:00
9856317a64 fix buffering test
The test for erroneous ERR_INPUTTOOLONG was counting codepoints instead
of bytes, consequently underestimating the actual relayed size of the message.
2024-06-11 01:37:23 -04:00
af980ed3b6 Remove use of deprecated config settings on InspIRCd 3+. 2024-06-07 18:35:45 +02:00
15c077d511 Update the GitHub Actions dependencies used by make_workflows.
Fixes various CI warnings.
2024-06-07 17:54:40 +02:00
330300eba1 Update for the new InspIRCd development branch. 2024-06-07 15:58:47 +02:00
f265e28702 update multiline tests (#275) 2024-06-04 07:18:16 +02:00
e3ffff6ad4 Add tests for joining channels with keys (#274) 2024-06-01 17:04:01 +02:00
6243908ecc Add tests for SASL-IR 2023-03-21 19:58:39 +01:00
12 changed files with 560 additions and 411 deletions

View File

@ -8,7 +8,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-anope-devel
path: '~/.cache
@ -16,13 +16,13 @@ jobs:
${ github.workspace }/anope
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout Anope
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: anope
ref: '2.1'
@ -37,7 +37,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-anope.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-anope
path: ~/artefacts-*.tar.gz
@ -48,7 +48,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-bahamut-devel
path: '~/.cache
@ -56,13 +56,13 @@ jobs:
${ github.workspace }/Bahamut
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout Bahamut
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: Bahamut
ref: master
@ -90,7 +90,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-bahamut.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-bahamut
path: ~/artefacts-*.tar.gz
@ -101,7 +101,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-hybrid-devel
path: '~/.cache
@ -109,13 +109,13 @@ jobs:
${ github.workspace }/ircd-hybrid
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout Hybrid
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: ircd-hybrid
ref: 8.2.x
@ -129,7 +129,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-hybrid.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-hybrid
path: ~/artefacts-*.tar.gz
@ -139,13 +139,13 @@ jobs:
steps:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout InspIRCd
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: inspircd
ref: master
@ -159,7 +159,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-inspircd.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-inspircd
path: ~/artefacts-*.tar.gz
@ -170,7 +170,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-ngircd-devel
path: '~/.cache
@ -178,13 +178,13 @@ jobs:
${ github.workspace }/ngircd
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout ngircd
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: ngircd
ref: master
@ -200,7 +200,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-ngircd.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-ngircd
path: ~/artefacts-*.tar.gz
@ -211,7 +211,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-plexus4-devel
path: '~/.cache
@ -219,9 +219,9 @@ jobs:
${ github.workspace }/placeholder
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: clone
@ -242,7 +242,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-plexus4.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-plexus4
path: ~/artefacts-*.tar.gz
@ -253,7 +253,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-solanum-devel
path: '~/.cache
@ -261,13 +261,13 @@ jobs:
${ github.workspace }/solanum
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout Solanum
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: solanum
ref: main
@ -282,7 +282,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-solanum.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-solanum
path: ~/artefacts-*.tar.gz
@ -293,7 +293,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-unrealircd-devel
path: '~/.cache
@ -301,13 +301,13 @@ jobs:
${ github.workspace }/unrealircd
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout UnrealIRCd 6
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: unrealircd
ref: unreal60_dev
@ -328,7 +328,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-unrealircd.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-unrealircd
path: ~/artefacts-*.tar.gz
@ -339,7 +339,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-unrealircd-5-devel
path: '~/.cache
@ -347,13 +347,13 @@ jobs:
${ github.workspace }/unrealircd
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout UnrealIRCd 5
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: unrealircd
ref: unreal52
@ -374,7 +374,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-unrealircd-5.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-unrealircd-5
path: ~/artefacts-*.tar.gz
@ -408,9 +408,9 @@ jobs:
- test-unrealircd-dlk
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Install dashboard dependencies
@ -435,13 +435,13 @@ jobs:
- build-bahamut
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-bahamut
path: '~'
@ -459,7 +459,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_bahamut_devel
path: pytest.xml
@ -469,18 +469,18 @@ jobs:
- build-anope
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-bahamut
path: '~'
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-anope
path: '~'
@ -498,7 +498,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_bahamut-anope_devel
path: pytest.xml
@ -507,13 +507,13 @@ jobs:
- build-bahamut
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-bahamut
path: '~'
@ -531,7 +531,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_bahamut-atheme_devel
path: pytest.xml
@ -539,13 +539,13 @@ jobs:
needs: []
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout Ergo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: ergo
ref: master
@ -571,7 +571,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_ergo_devel
path: pytest.xml
@ -581,18 +581,18 @@ jobs:
- build-anope
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-hybrid
path: '~'
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-anope
path: '~'
@ -610,7 +610,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_hybrid_devel
path: pytest.xml
@ -619,13 +619,13 @@ jobs:
- build-inspircd
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-inspircd
path: '~'
@ -643,7 +643,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_inspircd_devel
path: pytest.xml
@ -653,18 +653,18 @@ jobs:
- build-anope
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-inspircd
path: '~'
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-anope
path: '~'
@ -682,7 +682,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_inspircd-anope_devel
path: pytest.xml
@ -690,13 +690,13 @@ jobs:
needs: []
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout ircu2
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: ircu2
ref: u2_10_12_branch
@ -721,7 +721,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_ircu2_devel
path: pytest.xml
@ -729,9 +729,9 @@ jobs:
needs: []
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Install dependencies
@ -749,7 +749,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_limnoria_devel
path: pytest.xml
@ -757,13 +757,13 @@ jobs:
needs: []
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout nefarious
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: nefarious
ref: master
@ -787,7 +787,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_nefarious_devel
path: pytest.xml
@ -796,13 +796,13 @@ jobs:
- build-ngircd
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-ngircd
path: '~'
@ -820,7 +820,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_ngircd_devel
path: pytest.xml
@ -830,18 +830,18 @@ jobs:
- build-anope
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-ngircd
path: '~'
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-anope
path: '~'
@ -859,7 +859,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_ngircd-anope_devel
path: pytest.xml
@ -868,13 +868,13 @@ jobs:
- build-ngircd
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-ngircd
path: '~'
@ -892,7 +892,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_ngircd-atheme_devel
path: pytest.xml
@ -902,18 +902,18 @@ jobs:
- build-anope
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-plexus4
path: '~'
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-anope
path: '~'
@ -931,7 +931,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_plexus4_devel
path: pytest.xml
@ -939,13 +939,13 @@ jobs:
needs: []
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout Sable
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: sable
ref: master
@ -978,7 +978,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_sable_devel
path: pytest.xml
@ -987,13 +987,13 @@ jobs:
- build-solanum
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-solanum
path: '~'
@ -1011,7 +1011,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_solanum_devel
path: pytest.xml
@ -1019,9 +1019,9 @@ jobs:
needs: []
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Install dependencies
@ -1038,7 +1038,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_sopel_devel
path: pytest.xml
@ -1046,13 +1046,13 @@ jobs:
needs: []
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout TheLounge
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: thelounge
ref: master
@ -1076,7 +1076,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_thelounge_devel
path: pytest.xml
@ -1085,13 +1085,13 @@ jobs:
- build-unrealircd
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-unrealircd
path: '~'
@ -1109,7 +1109,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_unrealircd_devel
path: pytest.xml
@ -1118,13 +1118,13 @@ jobs:
- build-unrealircd-5
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-unrealircd-5
path: '~'
@ -1142,7 +1142,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_unrealircd-5_devel
path: pytest.xml
@ -1152,18 +1152,18 @@ jobs:
- build-anope
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-unrealircd
path: '~'
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-anope
path: '~'
@ -1181,7 +1181,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_unrealircd-anope_devel
path: pytest.xml
@ -1190,13 +1190,13 @@ jobs:
- build-unrealircd
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-unrealircd
path: '~'
@ -1214,7 +1214,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_unrealircd-atheme_devel
path: pytest.xml
@ -1223,20 +1223,20 @@ jobs:
- build-unrealircd
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-unrealircd
path: '~'
- name: Unpack artefacts
run: cd ~; find -name 'artefacts-*.tar.gz' -exec tar -xzf '{}' \;
- name: Checkout Dlk
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: Dlk-Services
ref: main
@ -1260,7 +1260,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_unrealircd-dlk_devel
path: pytest.xml

View File

@ -8,7 +8,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-anope-devel_release
path: '~/.cache
@ -16,13 +16,13 @@ jobs:
${ github.workspace }/anope
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout Anope
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: anope
ref: '2.0'
@ -37,7 +37,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-anope.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-anope
path: ~/artefacts-*.tar.gz
@ -47,13 +47,13 @@ jobs:
steps:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout InspIRCd
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: inspircd
ref: insp3
@ -67,7 +67,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-inspircd.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-inspircd
path: ~/artefacts-*.tar.gz
@ -81,9 +81,9 @@ jobs:
- test-inspircd-atheme
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Install dashboard dependencies
@ -108,13 +108,13 @@ jobs:
- build-inspircd
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-inspircd
path: '~'
@ -132,7 +132,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_inspircd_devel_release
path: pytest.xml
@ -142,18 +142,18 @@ jobs:
- build-anope
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-inspircd
path: '~'
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-anope
path: '~'
@ -171,7 +171,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_inspircd-anope_devel_release
path: pytest.xml
@ -180,13 +180,13 @@ jobs:
- build-inspircd
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-inspircd
path: '~'
@ -204,7 +204,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_inspircd-atheme_devel_release
path: pytest.xml

View File

@ -8,7 +8,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-anope-stable
path: '~/.cache
@ -16,13 +16,13 @@ jobs:
${ github.workspace }/anope
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout Anope
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: anope
ref: 2.0.14
@ -37,7 +37,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-anope.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-anope
path: ~/artefacts-*.tar.gz
@ -48,7 +48,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-bahamut-stable
path: '~/.cache
@ -56,13 +56,13 @@ jobs:
${ github.workspace }/Bahamut
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout Bahamut
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: Bahamut
ref: v2.2.1
@ -90,7 +90,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-bahamut.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-bahamut
path: ~/artefacts-*.tar.gz
@ -101,7 +101,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-charybdis-stable
path: '~/.cache
@ -109,13 +109,13 @@ jobs:
${ github.workspace }/charybdis
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout Charybdis
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: charybdis
ref: charybdis-4.1.2
@ -131,7 +131,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-charybdis.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-charybdis
path: ~/artefacts-*.tar.gz
@ -142,7 +142,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-hybrid-stable
path: '~/.cache
@ -150,13 +150,13 @@ jobs:
${ github.workspace }/ircd-hybrid
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout Hybrid
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: ircd-hybrid
ref: 8.2.39
@ -170,7 +170,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-hybrid.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-hybrid
path: ~/artefacts-*.tar.gz
@ -180,13 +180,13 @@ jobs:
steps:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout InspIRCd
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: inspircd
ref: v3.17.0
@ -200,7 +200,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-inspircd.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-inspircd
path: ~/artefacts-*.tar.gz
@ -211,7 +211,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-ngircd-stable
path: '~/.cache
@ -219,13 +219,13 @@ jobs:
${ github.workspace }/ngircd
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout ngircd
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: ngircd
ref: 3e3f6cbeceefd9357b53b27c2386bb39306ab353
@ -241,7 +241,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-ngircd.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-ngircd
path: ~/artefacts-*.tar.gz
@ -252,7 +252,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-plexus4-stable
path: '~/.cache
@ -260,9 +260,9 @@ jobs:
${ github.workspace }/placeholder
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: clone
@ -283,7 +283,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-plexus4.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-plexus4
path: ~/artefacts-*.tar.gz
@ -294,7 +294,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-solanum-stable
path: '~/.cache
@ -302,13 +302,13 @@ jobs:
${ github.workspace }/solanum
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout Solanum
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: solanum
ref: 492d560ee13e71dc35403fd676e58c2d5bdcf2a9
@ -323,7 +323,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-solanum.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-solanum
path: ~/artefacts-*.tar.gz
@ -334,7 +334,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-unrealircd-stable
path: '~/.cache
@ -342,13 +342,13 @@ jobs:
${ github.workspace }/unrealircd
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout UnrealIRCd 6
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: unrealircd
ref: da3c1c654481a33035b9c703957e1c25d0158259
@ -369,7 +369,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-unrealircd.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-unrealircd
path: ~/artefacts-*.tar.gz
@ -380,7 +380,7 @@ jobs:
- name: Create directories
run: cd ~/; mkdir -p .local/ go/
- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: 3-${{ runner.os }}-unrealircd-5-stable
path: '~/.cache
@ -388,13 +388,13 @@ jobs:
${ github.workspace }/unrealircd
'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout UnrealIRCd 5
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: unrealircd
ref: 6604856973f713a494f83d38992d7d61ce6b9db4
@ -415,7 +415,7 @@ jobs:
- name: Make artefact tarball
run: cd ~; tar -czf artefacts-unrealircd-5.tar.gz .local/ go/
- name: Upload build artefacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: installed-unrealircd-5
path: ~/artefacts-*.tar.gz
@ -451,9 +451,9 @@ jobs:
- test-unrealircd-atheme
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Install dashboard dependencies
@ -478,13 +478,13 @@ jobs:
- build-bahamut
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-bahamut
path: '~'
@ -502,7 +502,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_bahamut_stable
path: pytest.xml
@ -512,18 +512,18 @@ jobs:
- build-anope
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-bahamut
path: '~'
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-anope
path: '~'
@ -541,7 +541,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_bahamut-anope_stable
path: pytest.xml
@ -550,13 +550,13 @@ jobs:
- build-bahamut
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-bahamut
path: '~'
@ -574,7 +574,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_bahamut-atheme_stable
path: pytest.xml
@ -583,13 +583,13 @@ jobs:
- build-charybdis
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-charybdis
path: '~'
@ -607,7 +607,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_charybdis_stable
path: pytest.xml
@ -615,13 +615,13 @@ jobs:
needs: []
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout Ergo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: ergo
ref: irctest_stable
@ -647,7 +647,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_ergo_stable
path: pytest.xml
@ -657,18 +657,18 @@ jobs:
- build-anope
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-hybrid
path: '~'
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-anope
path: '~'
@ -686,7 +686,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_hybrid_stable
path: pytest.xml
@ -695,13 +695,13 @@ jobs:
- build-inspircd
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-inspircd
path: '~'
@ -719,7 +719,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_inspircd_stable
path: pytest.xml
@ -729,18 +729,18 @@ jobs:
- build-anope
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-inspircd
path: '~'
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-anope
path: '~'
@ -758,7 +758,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_inspircd-anope_stable
path: pytest.xml
@ -767,13 +767,13 @@ jobs:
- build-inspircd
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-inspircd
path: '~'
@ -791,7 +791,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_inspircd-atheme_stable
path: pytest.xml
@ -799,13 +799,13 @@ jobs:
needs: []
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout irc2
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: irc2.11.2p3
ref: 59649f24c3a5c27bad5648b48774f27475bccfd3
@ -841,7 +841,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_irc2_stable
path: pytest.xml
@ -849,13 +849,13 @@ jobs:
needs: []
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout ircu2
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: ircu2
ref: u2.10.12.19
@ -880,7 +880,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_ircu2_stable
path: pytest.xml
@ -888,9 +888,9 @@ jobs:
needs: []
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Install dependencies
@ -907,7 +907,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_limnoria_stable
path: pytest.xml
@ -915,13 +915,13 @@ jobs:
needs: []
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout nefarious
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: nefarious
ref: 985704168ecada12d9e53b46df6087ef9d9fb40b
@ -945,7 +945,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_nefarious_stable
path: pytest.xml
@ -954,13 +954,13 @@ jobs:
- build-ngircd
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-ngircd
path: '~'
@ -978,7 +978,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_ngircd_stable
path: pytest.xml
@ -988,18 +988,18 @@ jobs:
- build-anope
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-ngircd
path: '~'
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-anope
path: '~'
@ -1017,7 +1017,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_ngircd-anope_stable
path: pytest.xml
@ -1026,13 +1026,13 @@ jobs:
- build-ngircd
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-ngircd
path: '~'
@ -1050,7 +1050,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_ngircd-atheme_stable
path: pytest.xml
@ -1060,18 +1060,18 @@ jobs:
- build-anope
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-plexus4
path: '~'
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-anope
path: '~'
@ -1089,7 +1089,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_plexus4_stable
path: pytest.xml
@ -1097,13 +1097,13 @@ jobs:
needs: []
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout Sable
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: sable
ref: e9701e5e8d0c4f278ddd61ce7285f4918ecf99e9
@ -1136,7 +1136,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_sable_stable
path: pytest.xml
@ -1145,13 +1145,13 @@ jobs:
- build-solanum
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-solanum
path: '~'
@ -1169,7 +1169,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_solanum_stable
path: pytest.xml
@ -1177,9 +1177,9 @@ jobs:
needs: []
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Install dependencies
@ -1196,7 +1196,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_sopel_stable
path: pytest.xml
@ -1204,13 +1204,13 @@ jobs:
needs: []
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Checkout TheLounge
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: thelounge
ref: v4.4.0
@ -1234,7 +1234,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_thelounge_stable
path: pytest.xml
@ -1243,13 +1243,13 @@ jobs:
- build-unrealircd
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-unrealircd
path: '~'
@ -1267,7 +1267,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_unrealircd_stable
path: pytest.xml
@ -1276,13 +1276,13 @@ jobs:
- build-unrealircd-5
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-unrealircd-5
path: '~'
@ -1300,7 +1300,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_unrealircd-5_stable
path: pytest.xml
@ -1310,18 +1310,18 @@ jobs:
- build-anope
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-unrealircd
path: '~'
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-anope
path: '~'
@ -1339,7 +1339,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_unrealircd-anope_stable
path: pytest.xml
@ -1348,13 +1348,13 @@ jobs:
- build-unrealircd
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Download build artefacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: installed-unrealircd
path: '~'
@ -1372,7 +1372,7 @@ jobs:
timeout-minutes: 30
- if: always()
name: Publish results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pytest-results_unrealircd-atheme_stable
path: pytest.xml

View File

@ -1,3 +1,4 @@
from pathlib import Path
import shutil
import subprocess
from typing import Optional
@ -51,6 +52,8 @@ class BaseHybridController(BaseServerController, DirectoryBasedController):
)
else:
ssl_config = ""
binary_path = shutil.which(self.binary_name)
assert binary_path, f"Could not find '{binary_path}' executable"
with self.open_file("server.conf") as fd:
fd.write(
(self.template_config).format(
@ -60,6 +63,7 @@ class BaseHybridController(BaseServerController, DirectoryBasedController):
services_port=services_port,
password_field=password_field,
ssl_config=ssl_config,
install_prefix=Path(binary_path).parent.parent,
)
)
assert self.directory

View File

@ -58,6 +58,11 @@ BASE_CONFIG = {
"enabled": True,
"method": "strict",
},
"login-throttling": {
"enabled": True,
"duration": "1m",
"max-attempts": 3,
},
},
"channels": {"registration": {"enabled": True}},
"datastore": {"path": None},

View File

@ -3,6 +3,9 @@ from typing import Set, Type
from .base_hybrid import BaseHybridController
TEMPLATE_CONFIG = """
module_base_path = "{install_prefix}/lib/ircd-hybrid/modules";
.include "./reference.modules.conf"
serverinfo {{
name = "My.Little.Server";
sid = "42X";

View File

@ -48,9 +48,7 @@ TEMPLATE_CONFIG = """
sendpass="password"
>
<module name="spanningtree">
<module name="services_account">
<module name="hidechans"> # Anope errors when missing
<module name="svshold"> # Atheme raises a warning when missing
<sasl requiressl="no"
target="services.example.org">
@ -71,14 +69,10 @@ TEMPLATE_CONFIG = """
<module name="ircv3_servertime">
<module name="monitor">
<module name="m_muteban"> # for testing mute extbans
<module name="namesx"> # For multi-prefix
<module name="sasl">
<module name="uhnames"> # For userhost-in-names
# HELP/HELPOP
<module name="alias"> # for the HELP alias
<module name="{help_module_name}">
<include file="examples/{help_module_name}.conf.example">
{version_config}
# Misc:
<log method="file" type="*" level="debug" target="/tmp/ircd-{port}.log">
@ -90,6 +84,26 @@ TEMPLATE_SSL_CONFIG = """
<openssl certfile="{pem_path}" keyfile="{key_path}" dhfile="{dh_path}" hash="sha1">
"""
TEMPLATE_V3_CONFIG = """
<module name="namesx"> # For multi-prefix
<module name="services_account">
<module name="svshold"> # Atheme raises a warning when missing
# HELP/HELPOP
<module name="helpop">
<include file="examples/helpop.conf.example">
"""
TEMPLATE_V4_CONFIG = """
<module name="account">
<module name="multiprefix"> # For multi-prefix
<module name="services">
# HELP/HELPOP
<module name="help">
<include file="examples/help.example.conf">
"""
@functools.lru_cache()
def installed_version() -> int:
@ -98,7 +112,8 @@ def installed_version() -> int:
return 3
if output.startswith("InspIRCd-4"):
return 4
else:
if output.startswith("InspIRCd-5"):
return 5
assert False, f"unexpected version: {output}"
@ -141,9 +156,9 @@ class InspircdController(BaseServerController, DirectoryBasedController):
ssl_config = ""
if installed_version() == 3:
help_module_name = "helpop"
elif installed_version() == 4:
help_module_name = "help"
version_config = TEMPLATE_V3_CONFIG
elif installed_version() >= 4:
version_config = TEMPLATE_V4_CONFIG
else:
assert False, f"unexpected version: {installed_version()}"
@ -156,7 +171,7 @@ class InspircdController(BaseServerController, DirectoryBasedController):
services_port=services_port,
password_field=password_field,
ssl_config=ssl_config,
help_module_name=help_module_name,
version_config=version_config,
)
)
assert self.directory

View File

@ -408,6 +408,7 @@ class SableController(BaseServerController, DirectoryBasedController):
],
cwd=self.directory,
preexec_fn=os.setsid,
env={"RUST_BACKTRACE": "1", **os.environ},
)
self.pgroup_id = os.getpgid(self.proc.pid)
@ -485,6 +486,7 @@ class SableServicesController(BaseServicesController):
],
cwd=self.server_controller.directory,
preexec_fn=os.setsid,
env={"RUST_BACKTRACE": "1", **os.environ},
)
self.pgroup_id = os.getpgid(self.proc.pid)

View File

@ -86,10 +86,10 @@ class BufferingTestCase(cases.BaseServerTestCase):
if messages and ERR_INPUTTOOLONG in (m.command for m in messages):
# https://defs.ircdocs.horse/defs/numerics.html#err-inputtoolong-417
self.assertGreater(
len(line + payload + "\r\n"),
len((line + payload + "\r\n").encode()),
512 - overhead,
"Got ERR_INPUTTOOLONG for a messag that should fit "
"withing 512 characters.",
"Got ERR_INPUTTOOLONG for a message that should fit "
"within 512 characters.",
)
continue
@ -125,11 +125,24 @@ class BufferingTestCase(cases.BaseServerTestCase):
f"expected payload to be a prefix of {payload!r}, "
f"but got {payload!r}",
)
if self.controller.software_name == "Ergo":
self.assertTrue(
payload_intact,
f"Ergo should not truncate messages: {repr(line + payload)}, {repr(received_line)}",
)
def get_overhead(self, client1, client2, colon):
self.sendLine(client1, f"PRIVMSG nick2 {colon}a\r\n")
"""Compute the overhead added to client1's message:
PRIVMSG nick2 a\r\n
:nick1!~user@host PRIVMSG nick2 :a\r\n
So typically client1's NUH length plus either 2 or 3 bytes
(the initial colon, the space between source and command, and possibly
a colon preceding the trailing).
"""
outgoing = f"PRIVMSG nick2 {colon}a\r\n"
self.sendLine(client1, outgoing)
line = self._getLine(client2)
return len(line) - len(f"PRIVMSG nick2 {colon}a\r\n")
return len(line) - len(outgoing.encode())
def _getLine(self, client) -> bytes:
line = b""

View File

@ -3,7 +3,7 @@
"""
from irctest import cases
from irctest.patma import ANYDICT, StrRe
from irctest.patma import ANYDICT, ANYSTR, StrRe
CAP_NAME = "draft/multiline"
BATCH_TYPE = "draft/multiline"
@ -135,3 +135,86 @@ class MultilineTestCase(cases.BaseServerTestCase):
self.assertIn("+client-only-tag", fallback_relay[0].tags)
self.assertIn("+client-only-tag", fallback_relay[1].tags)
self.assertEqual(fallback_relay[0].tags["msgid"], msgid)
@cases.mark_capabilities("draft/multiline")
def testInvalidBatchTag(self):
"""Test that an unexpected change of batch tag results in
FAIL BATCH MULTILINE_INVALID."""
self.connectClient(
"alice", capabilities=(base_caps + [CAP_NAME]), skip_if_cap_nak=True
)
self.joinChannel(1, "#test")
# invalid batch tag:
self.sendLine(1, "BATCH +123 %s #test" % (BATCH_TYPE,))
self.sendLine(1, "@batch=231 PRIVMSG #test :hi")
self.assertMessageMatch(
self.getMessage(1),
command="FAIL",
params=["BATCH", "MULTILINE_INVALID", ANYSTR],
)
@cases.mark_capabilities("draft/multiline")
def testInvalidBlankConcatTag(self):
"""Test that the concat tag on a blank message results in
FAIL BATCH MULTILINE_INVALID."""
self.connectClient(
"alice", capabilities=(base_caps + [CAP_NAME]), skip_if_cap_nak=True
)
self.joinChannel(1, "#test")
# cannot send the concat tag with a blank message:
self.sendLine(1, "BATCH +123 %s #test" % (BATCH_TYPE,))
self.sendLine(1, "@batch=123 PRIVMSG #test :hi")
self.sendLine(1, "@batch=123;%s PRIVMSG #test :" % (CONCAT_TAG,))
self.assertMessageMatch(
self.getMessage(1),
command="FAIL",
params=["BATCH", "MULTILINE_INVALID", ANYSTR],
)
@cases.mark_specifications("Ergo")
def testLineLimit(self):
"""This is an Ergo-specific test for line limit enforcement
in multiline messages. Right now it hardcodes the same limits as in
the Ergo controller; we can generalize it in future for other multiline
implementations.
"""
self.connectClient(
"alice", capabilities=(base_caps + [CAP_NAME]), skip_if_cap_nak=False
)
self.joinChannel(1, "#test")
# line limit exceeded
self.sendLine(1, "BATCH +123 %s #test" % (BATCH_TYPE,))
for i in range(33):
self.sendLine(1, "@batch=123 PRIVMSG #test hi")
self.assertMessageMatch(
self.getMessage(1),
command="FAIL",
params=["BATCH", "MULTILINE_MAX_LINES", "32", ANYSTR],
)
@cases.mark_specifications("Ergo")
def testByteLimit(self):
"""This is an Ergo-specific test for line limit enforcement
in multiline messages (see testLineLimit).
"""
self.connectClient(
"alice", capabilities=(base_caps + [CAP_NAME]), skip_if_cap_nak=False
)
self.joinChannel(1, "#test")
# byte limit exceeded
self.sendLine(1, "BATCH +234 %s #test" % (BATCH_TYPE,))
for i in range(11):
self.sendLine(1, "@batch=234 PRIVMSG #test " + ("x" * 400))
self.assertMessageMatch(
self.getMessage(1),
command="FAIL",
params=["BATCH", "MULTILINE_MAX_BYTES", "4096", ANYSTR],
)

View File

@ -1,4 +1,5 @@
import base64
from typing import List
from irctest import cases, runner, scram
from irctest.numerics import ERR_SASLFAIL, RPL_LOGGEDIN, RPL_SASLMECHS
@ -11,8 +12,34 @@ class RegistrationTestCase(cases.BaseServerTestCase):
self.controller.registerUser(self, "testuser", "mypassword")
@cases.mark_services
class SaslTestCase(cases.BaseServerTestCase):
class _BaseSasl(cases.BaseServerTestCase):
sasl_ir: bool
capabilities: List[str]
def _doInitialExchange(self, client, mechanism: str, chunk: str):
"""Does the initial C->S, S->C, C->S exchange.
With ``sasl_ir=False``, this is done with the usual three messages exchange
(``AUTHENTICATE <mechanism>``, ``AUTHENTICATE +``, ``AUTHENTICATE <chunk>``)
with ``sasl_ir=True``, this is done in a single C->S message
(``AUTHENTICATE <mechanism> <chunk>``)
See the [sasl-ir spec](https://github.com/ircv3/ircv3-specifications/pull/520)
"""
if self.sasl_ir:
self.sendLine(client, f"AUTHENTICATE {mechanism} {chunk}")
else:
self.sendLine(client, f"AUTHENTICATE {mechanism}")
m = self.getRegistrationMessage(1)
self.assertMessageMatch(
m,
command="AUTHENTICATE",
params=["+"],
fail_msg=f"Sent “AUTHENTICATE {mechanism}”, server should have "
f"replied with “AUTHENTICATE +”, but instead sent: {{msg}}",
)
self.sendLine(client, f"AUTHENTICATE {chunk}")
@cases.mark_specifications("IRCv3")
@cases.skipUnlessHasMechanism("PLAIN")
def testPlain(self):
@ -34,17 +61,8 @@ class SaslTestCase(cases.BaseServerTestCase):
capabilities["sasl"],
fail_msg="Does not have PLAIN mechanism as the controller " "claims",
)
self.requestCapabilities(1, ["sasl"], skip_if_cap_nak=False)
self.sendLine(1, "AUTHENTICATE PLAIN")
m = self.getRegistrationMessage(1)
self.assertMessageMatch(
m,
command="AUTHENTICATE",
params=["+"],
fail_msg="Sent “AUTHENTICATE PLAIN”, server should have "
"replied with “AUTHENTICATE +”, but instead sent: {msg}",
)
self.sendLine(1, "AUTHENTICATE amlsbGVzAGppbGxlcwBzZXNhbWU=")
self.requestCapabilities(1, self.capabilities, skip_if_cap_nak=False)
self._doInitialExchange(1, "PLAIN", "amlsbGVzAGppbGxlcwBzZXNhbWU=")
m = self.getRegistrationMessage(1)
self.assertMessageMatch(
m,
@ -88,17 +106,8 @@ class SaslTestCase(cases.BaseServerTestCase):
).decode()
self.controller.registerUser(self, "foo", password)
self.addClient()
self.requestCapabilities(1, ["sasl"], skip_if_cap_nak=False)
self.sendLine(1, "AUTHENTICATE PLAIN")
m = self.getRegistrationMessage(1)
self.assertMessageMatch(
m,
command="AUTHENTICATE",
params=["+"],
fail_msg="Sent “AUTHENTICATE PLAIN”, server should have "
"replied with “AUTHENTICATE +”, but instead sent: {msg}",
)
self.sendLine(1, "AUTHENTICATE " + authstring)
self.requestCapabilities(1, self.capabilities, skip_if_cap_nak=False)
self._doInitialExchange(1, "PLAIN", authstring)
m = self.getRegistrationMessage(1)
self.assertMessageMatch(
m,
@ -148,17 +157,8 @@ class SaslTestCase(cases.BaseServerTestCase):
capabilities["sasl"],
fail_msg="Does not have PLAIN mechanism as the controller " "claims",
)
self.requestCapabilities(1, ["sasl"], skip_if_cap_nak=False)
self.sendLine(1, "AUTHENTICATE PLAIN")
m = self.getRegistrationMessage(1)
self.assertMessageMatch(
m,
command="AUTHENTICATE",
params=["+"],
fail_msg="Sent “AUTHENTICATE PLAIN”, server should have "
"replied with “AUTHENTICATE +”, but instead sent: {msg}",
)
self.sendLine(1, "AUTHENTICATE AGppbGxlcwBzZXNhbWU=")
self.requestCapabilities(1, self.capabilities, skip_if_cap_nak=False)
self._doInitialExchange(1, "PLAIN", "AGppbGxlcwBzZXNhbWU=")
m = self.getRegistrationMessage(1)
self.assertMessageMatch(
m,
@ -184,7 +184,10 @@ class SaslTestCase(cases.BaseServerTestCase):
capabilities,
fail_msg="Does not have SASL as the controller claims.",
)
self.requestCapabilities(1, ["sasl"], skip_if_cap_nak=False)
self.requestCapabilities(1, self.capabilities, skip_if_cap_nak=False)
if self.sasl_ir:
self.sendLine(1, "AUTHENTICATE FOO AGppbGxlcwBzZXNhbWU=")
else:
self.sendLine(1, "AUTHENTICATE FOO")
m = self.getRegistrationMessage(1)
while m.command == RPL_SASLMECHS:
@ -235,17 +238,8 @@ class SaslTestCase(cases.BaseServerTestCase):
capabilities["sasl"],
fail_msg="Does not have PLAIN mechanism as the controller " "claims",
)
self.requestCapabilities(1, ["sasl"], skip_if_cap_nak=False)
self.sendLine(1, "AUTHENTICATE PLAIN")
m = self.getRegistrationMessage(1)
self.assertMessageMatch(
m,
command="AUTHENTICATE",
params=["+"],
fail_msg="Sent “AUTHENTICATE PLAIN”, expected "
"“AUTHENTICATE +” as a response, but got: {msg}",
)
self.sendLine(1, "AUTHENTICATE {}".format(authstring[0:400]))
self.requestCapabilities(1, self.capabilities, skip_if_cap_nak=False)
self._doInitialExchange(1, "PLAIN", authstring[0:400])
self.sendLine(1, "AUTHENTICATE {}".format(authstring[400:]))
self.confirmSuccessfulAuth()
@ -305,17 +299,8 @@ class SaslTestCase(cases.BaseServerTestCase):
capabilities["sasl"],
fail_msg="Does not have PLAIN mechanism as the controller " "claims",
)
self.requestCapabilities(1, ["sasl"], skip_if_cap_nak=False)
self.sendLine(1, "AUTHENTICATE PLAIN")
m = self.getRegistrationMessage(1)
self.assertMessageMatch(
m,
command="AUTHENTICATE",
params=["+"],
fail_msg="Sent “AUTHENTICATE PLAIN”, expected "
"“AUTHENTICATE +” as a response, but got: {msg}",
)
self.sendLine(1, "AUTHENTICATE {}".format(authstring))
self.requestCapabilities(1, self.capabilities, skip_if_cap_nak=False)
self._doInitialExchange(1, "PLAIN", authstring)
self.sendLine(1, "AUTHENTICATE +")
self.confirmSuccessfulAuth()
@ -324,6 +309,12 @@ class SaslTestCase(cases.BaseServerTestCase):
# I don't know how to do it, because it would make the registration
# message's length too big for it to be valid.
@cases.mark_services
class SaslTestCase(_BaseSasl):
sasl_ir = False
capabilities = ["sasl"]
@cases.mark_specifications("IRCv3")
@cases.skipUnlessHasMechanism("SCRAM-SHA-256")
def testScramSha256Success(self):
@ -344,7 +335,7 @@ class SaslTestCase(cases.BaseServerTestCase):
fail_msg="Does not have SCRAM-SHA-256 mechanism as the "
"controller claims",
)
self.requestCapabilities(1, ["sasl"], skip_if_cap_nak=False)
self.requestCapabilities(1, self.capabilities, skip_if_cap_nak=False)
self.sendLine(1, "AUTHENTICATE SCRAM-SHA-256")
m = self.getRegistrationMessage(1)
@ -400,7 +391,7 @@ class SaslTestCase(cases.BaseServerTestCase):
fail_msg="Does not have SCRAM-SHA-256 mechanism as the "
"controller claims",
)
self.requestCapabilities(1, ["sasl"], skip_if_cap_nak=False)
self.requestCapabilities(1, self.capabilities, skip_if_cap_nak=False)
self.sendLine(1, "AUTHENTICATE SCRAM-SHA-256")
m = self.getRegistrationMessage(1)
@ -430,3 +421,36 @@ class SaslTestCase(cases.BaseServerTestCase):
)
m = self.getRegistrationMessage(1)
self.assertMessageMatch(m, command=ERR_SASLFAIL)
@cases.mark_services
class SaslIrTestCase(_BaseSasl):
"""Tests SASL with clients requesting the
[sasl-ir](https://github.com/ircv3/ircv3-specifications/pull/520) cap and using it.
"""
sasl_ir = True
capabilities = ["sasl", "draft/sasl-ir"]
def setUp(self):
super().setUp()
self.connectClient(
"capgetter", capabilities=["draft/sasl-ir"], skip_if_cap_nak=True
)
@cases.mark_services
class ImplicitSaslIrTestCase(_BaseSasl):
"""Tests SASL with clients using the
[sasl-ir](https://github.com/ircv3/ircv3-specifications/pull/520) CAP without
requesting it.
"""
sasl_ir = True
capabilities = ["sasl"]
def setUp(self):
super().setUp()
self.connectClient(
"capgetter", capabilities=["draft/sasl-ir"], skip_if_cap_nak=True
)

View File

@ -65,7 +65,7 @@ def get_install_steps(*, software_config, software_id, version_flavor):
install_steps = [
{
"name": f"Checkout {name}",
"uses": "actions/checkout@v3",
"uses": "actions/checkout@v4",
"with": {
"repository": software_config["repository"],
"ref": ref,
@ -94,7 +94,7 @@ def get_build_job(*, software_config, software_id, version_flavor):
cache = [
{
"name": "Cache dependencies",
"uses": "actions/cache@v3",
"uses": "actions/cache@v4",
"with": {
"path": f"~/.cache\n${{ github.workspace }}/{path}\n",
"key": "3-${{ runner.os }}-"
@ -123,10 +123,10 @@ def get_build_job(*, software_config, software_id, version_flavor):
"run": "cd ~/; mkdir -p .local/ go/",
},
*cache,
{"uses": "actions/checkout@v3"},
{"uses": "actions/checkout@v4"},
{
"name": "Set up Python 3.11",
"uses": "actions/setup-python@v4",
"uses": "actions/setup-python@v5",
"with": {"python-version": 3.11},
},
*install_steps,
@ -160,7 +160,7 @@ def get_test_job(*, config, test_config, test_id, version_flavor, jobs):
downloads.append(
{
"name": "Download build artefacts",
"uses": "actions/download-artifact@v3",
"uses": "actions/download-artifact@v4",
"with": {"name": f"installed-{software_id}", "path": "~"},
}
)
@ -195,10 +195,10 @@ def get_test_job(*, config, test_config, test_id, version_flavor, jobs):
"runs-on": "ubuntu-22.04",
"needs": needs,
"steps": [
{"uses": "actions/checkout@v3"},
{"uses": "actions/checkout@v4"},
{
"name": "Set up Python 3.11",
"uses": "actions/setup-python@v4",
"uses": "actions/setup-python@v5",
"with": {"python-version": 3.11},
},
*downloads,
@ -232,7 +232,7 @@ def get_test_job(*, config, test_config, test_id, version_flavor, jobs):
{
"name": "Publish results",
"if": "always()",
"uses": "actions/upload-artifact@v3",
"uses": "actions/upload-artifact@v4",
"with": {
"name": f"pytest-results_{test_id}_{version_flavor.value}",
"path": "pytest.xml",
@ -251,7 +251,7 @@ def upload_steps(software_id):
},
{
"name": "Upload build artefacts",
"uses": "actions/upload-artifact@v3",
"uses": "actions/upload-artifact@v4",
"with": {
"name": f"installed-{software_id}",
"path": "~/artefacts-*.tar.gz",
@ -312,10 +312,10 @@ def generate_workflow(config: dict, version_flavor: VersionFlavor):
# this job then
"if": "success() || failure()",
"steps": [
{"uses": "actions/checkout@v3"},
{"uses": "actions/checkout@v4"},
{
"name": "Download Artifacts",
"uses": "actions/download-artifact@v3",
"uses": "actions/download-artifact@v4",
"with": {"path": "artifacts"},
},
{