# This file was auto-generated by make_workflows.py. # Do not edit it manually, modifications will be lost. jobs: build-anope: runs-on: ubuntu-20.04 steps: - name: Create directories run: cd ~/; mkdir -p .local/ go/ - name: Cache dependencies uses: actions/cache@v3 with: key: 3-${{ runner.os }}-anope-devel_release path: '~/.cache ${ github.workspace }/anope ' - uses: actions/checkout@v3 - name: Set up Python 3.7 uses: actions/setup-python@v4 with: python-version: 3.7 - name: Checkout Anope uses: actions/checkout@v3 with: path: anope ref: 2.0.9 repository: anope/anope - name: Build Anope run: | cd $GITHUB_WORKSPACE/anope/ cp $GITHUB_WORKSPACE/data/anope/* . CFLAGS=-O0 ./Config -quick make -C build -j 4 make -C build install - name: Make artefact tarball run: cd ~; tar -czf artefacts-anope.tar.gz .local/ go/ - name: Upload build artefacts uses: actions/upload-artifact@v3 with: name: installed-anope path: ~/artefacts-*.tar.gz retention-days: 1 build-inspircd: runs-on: ubuntu-20.04 steps: - name: Create directories run: cd ~/; mkdir -p .local/ go/ - uses: actions/checkout@v3 - name: Set up Python 3.7 uses: actions/setup-python@v4 with: python-version: 3.7 - name: Checkout InspIRCd uses: actions/checkout@v3 with: path: inspircd ref: insp3 repository: inspircd/inspircd - name: Build InspIRCd run: | cd $GITHUB_WORKSPACE/inspircd/ # Insp3 <= 3.16.0 and Insp4 <= 4.0.0a21 don't support -DINSPIRCD_UNLIMITED_MAINLOOP patch src/inspircd.cpp < $GITHUB_WORKSPACE/patches/inspircd_mainloop.patch || true ./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@v3 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-20.04 steps: - uses: actions/checkout@v3 - name: Download Artifacts uses: actions/download-artifact@v3 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-20.04 steps: - uses: actions/checkout@v3 - name: Set up Python 3.7 uses: actions/setup-python@v4 with: python-version: 3.7 - name: Download build artefacts uses: actions/download-artifact@v3 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 -r requirements.txt - name: Test with pytest run: PYTEST_ARGS='--junit-xml pytest.xml' PATH=$HOME/.local/bin:$PATH PATH=~/.local/inspircd/sbin:~/.local/inspircd/bin:$PATH make inspircd timeout-minutes: 30 - if: always() name: Publish results uses: actions/upload-artifact@v3 with: name: pytest-results_inspircd_devel_release path: pytest.xml test-inspircd-anope: needs: - build-inspircd - build-anope runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 - name: Set up Python 3.7 uses: actions/setup-python@v4 with: python-version: 3.7 - name: Download build artefacts uses: actions/download-artifact@v3 with: name: installed-inspircd path: '~' - name: Download build artefacts uses: actions/download-artifact@v3 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 -r requirements.txt - name: Test with pytest run: PYTEST_ARGS='--junit-xml pytest.xml' PATH=$HOME/.local/bin:$PATH PATH=~/.local/inspircd/sbin:~/.local/inspircd/bin:$PATH make inspircd-anope timeout-minutes: 30 - if: always() name: Publish results uses: actions/upload-artifact@v3 with: name: pytest-results_inspircd-anope_devel_release path: pytest.xml test-inspircd-atheme: needs: - build-inspircd runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 - name: Set up Python 3.7 uses: actions/setup-python@v4 with: python-version: 3.7 - name: Download build artefacts uses: actions/download-artifact@v3 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 -r requirements.txt - name: Test with pytest run: PYTEST_ARGS='--junit-xml pytest.xml' PATH=$HOME/.local/bin:$PATH PATH=~/.local/inspircd/sbin:~/.local/inspircd/bin:$PATH make inspircd-atheme timeout-minutes: 30 - if: always() name: Publish results uses: actions/upload-artifact@v3 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