# This file was auto-generated by make_workflows.py. # Do not edit it manually, modifications will be lost. jobs: build-anope: runs-on: ubuntu-22.04 steps: - name: Create directories run: cd ~/; mkdir -p .local/ go/ - name: Cache dependencies uses: actions/cache@v4 with: key: 3-${{ runner.os }}-anope-devel_release path: '~/.cache ${ github.workspace }/anope ' - uses: actions/checkout@v4 - name: Set up Python 3.11 uses: actions/setup-python@v5 with: python-version: 3.11 - name: Checkout Anope uses: actions/checkout@v4 with: path: anope ref: '2.0' repository: anope/anope - name: Build Anope run: | cd $GITHUB_WORKSPACE/anope/ sudo apt-get install ninja-build --no-install-recommends mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=$HOME/.local/ -DPROGRAM_NAME=anope -DUSE_PCH=ON -GNinja .. ninja install - name: Make artefact tarball run: cd ~; tar -czf artefacts-anope.tar.gz .local/ go/ - name: Upload build artefacts uses: actions/upload-artifact@v4 with: name: installed-anope path: ~/artefacts-*.tar.gz retention-days: 1 build-inspircd: runs-on: ubuntu-22.04 steps: - name: Create directories run: cd ~/; mkdir -p .local/ go/ - uses: actions/checkout@v4 - name: Set up Python 3.11 uses: actions/setup-python@v5 with: python-version: 3.11 - name: Checkout InspIRCd uses: actions/checkout@v4 with: path: inspircd ref: insp3 repository: inspircd/inspircd - name: Build InspIRCd run: | cd $GITHUB_WORKSPACE/inspircd/ ./configure --prefix=$HOME/.local/inspircd --development CXXFLAGS=-DINSPIRCD_UNLIMITED_MAINLOOP make -j 4 make install - name: Make artefact tarball run: cd ~; tar -czf artefacts-inspircd.tar.gz .local/ go/ - name: Upload build artefacts uses: actions/upload-artifact@v4 with: name: installed-inspircd path: ~/artefacts-*.tar.gz retention-days: 1 publish-test-results: if: success() || failure() name: Publish Dashboard needs: - test-inspircd - test-inspircd-anope - test-inspircd-atheme runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Download Artifacts uses: actions/download-artifact@v4 with: path: artifacts - name: Install dashboard dependencies run: |- python -m pip install --upgrade pip pip install defusedxml docutils -r requirements.txt - name: Generate dashboard run: |- shopt -s globstar python3 -m irctest.dashboard.format dashboard/ artifacts/**/*.xml echo '/ /index.xhtml' > dashboard/_redirects - name: Install netlify-cli run: npm i -g netlify-cli - env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} name: Deploy to Netlify run: ./.github/deploy_to_netlify.py test-inspircd: needs: - build-inspircd runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Set up Python 3.11 uses: actions/setup-python@v5 with: python-version: 3.11 - name: Download build artefacts uses: actions/download-artifact@v4 with: name: installed-inspircd path: '~' - name: Unpack artefacts run: cd ~; find -name 'artefacts-*.tar.gz' -exec tar -xzf '{}' \; - name: Install system dependencies run: sudo apt-get install atheme-services faketime - name: Install irctest dependencies run: |- python -m pip install --upgrade pip pip install pytest pytest-xdist pytest-timeout -r requirements.txt - name: Test with pytest run: PYTEST_ARGS='--junit-xml pytest.xml --timeout 300' PATH=$HOME/.local/bin:$PATH PATH=~/.local/inspircd/sbin:~/.local/inspircd/bin:~/.local/inspircd:$PATH make inspircd timeout-minutes: 30 - if: always() name: Publish results uses: actions/upload-artifact@v4 with: name: pytest-results_inspircd_devel_release path: pytest.xml test-inspircd-anope: needs: - build-inspircd - build-anope runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Set up Python 3.11 uses: actions/setup-python@v5 with: python-version: 3.11 - name: Download build artefacts uses: actions/download-artifact@v4 with: name: installed-inspircd path: '~' - name: Download build artefacts uses: actions/download-artifact@v4 with: name: installed-anope path: '~' - name: Unpack artefacts run: cd ~; find -name 'artefacts-*.tar.gz' -exec tar -xzf '{}' \; - name: Install system dependencies run: sudo apt-get install atheme-services faketime - name: Install irctest dependencies run: |- python -m pip install --upgrade pip pip install pytest pytest-xdist pytest-timeout -r requirements.txt - name: Test with pytest run: PYTEST_ARGS='--junit-xml pytest.xml --timeout 300' PATH=$HOME/.local/bin:$PATH PATH=~/.local/inspircd/sbin:~/.local/inspircd/bin:~/.local/inspircd:$PATH make inspircd-anope timeout-minutes: 30 - if: always() name: Publish results uses: actions/upload-artifact@v4 with: name: pytest-results_inspircd-anope_devel_release path: pytest.xml test-inspircd-atheme: needs: - build-inspircd runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Set up Python 3.11 uses: actions/setup-python@v5 with: python-version: 3.11 - name: Download build artefacts uses: actions/download-artifact@v4 with: name: installed-inspircd path: '~' - name: Unpack artefacts run: cd ~; find -name 'artefacts-*.tar.gz' -exec tar -xzf '{}' \; - name: Install system dependencies run: sudo apt-get install atheme-services faketime - name: Install irctest dependencies run: |- python -m pip install --upgrade pip pip install pytest pytest-xdist pytest-timeout -r requirements.txt - name: Test with pytest run: PYTEST_ARGS='--junit-xml pytest.xml --timeout 300' PATH=$HOME/.local/bin:$PATH PATH=~/.local/inspircd/sbin:~/.local/inspircd/bin:~/.local/inspircd:$PATH make inspircd-atheme timeout-minutes: 30 - if: always() name: Publish results uses: actions/upload-artifact@v4 with: name: pytest-results_inspircd-atheme_devel_release path: pytest.xml name: irctest with devel_release versions 'on': schedule: - cron: 51 8 * * 6 - cron: 51 8 * * 0 - cron: 51 17 * * * workflow_dispatch: null