feat: New small abomination tiles from Sastreii #10242
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
name: Build | |
on: | |
push: {} | |
pull_request: {} | |
release: | |
types: | |
- created | |
permissions: {} | |
jobs: | |
linting: | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
name: Code Linting | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Checkwhite | |
run: util/checkwhite -n | |
working-directory: crawl-ref/source | |
- name: Unbrace | |
run: util/unbrace -n | |
working-directory: crawl-ref/source | |
build_source: | |
permissions: | |
contents: write # for release creation (svenstaro/upload-release-action) | |
name: Source Packages ${{ matrix.arch }} | |
runs-on: ubuntu-latest | |
if: github.event.release.tag_name != null | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # all history | |
submodules: true | |
- name: Fix tags for release # work around https://github.com/actions/checkout/issues/882 | |
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* # will break on a lightweight tag | |
- name: Build source packages | |
run: make -j$(nproc) package-source | |
working-directory: crawl-ref/source | |
- name: Add build to release | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
tag: ${{ github.ref }} | |
file: stone_soup-${{ github.ref_name }}* | |
file_glob: true | |
build_linux: | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
name: Linux ${{ matrix.compiler }} ${{ matrix.build_opts }} ${{ matrix.debug }} ${{ matrix.build_all }} tag_upgrade=${{ matrix.tag_upgrade }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
compiler: | |
- gcc | |
- clang | |
build_opts: | |
- "" | |
- WEBTILES=1 | |
- WEBTILES=1 USE_DGAMELAUNCH=1 | |
- TILES=1 | |
debug: | |
- "" | |
- FULLDEBUG=1 | |
tag_upgrade: | |
- false | |
build_all: | |
- "" | |
exclude: | |
- compiler: gcc | |
build_opts: WEBTILES=1 USE_DGAMELAUNCH=1 | |
debug: FULLDEBUG=1 | |
# Limit Clang jobs: | |
# 1. Only build fulldebug | |
- compiler: clang | |
debug: "" | |
# 2. Skip webtiles builds (all webtiles servers use GCC) | |
- compiler: clang | |
build_opts: WEBTILES=1 USE_DGAMELAUNCH=1 | |
- compiler: clang | |
build_opts: WEBTILES=1 | |
include: | |
# Jobs for tag_upgrade=true. | |
- compiler: gcc | |
build_opts: "" | |
debug: FULLDEBUG=1 | |
tag_upgrade: true | |
build_all: "" | |
- compiler: gcc | |
build_opts: WEBTILES=1 USE_DGAMELAUNCH=1 | |
debug: FULLDEBUG=1 | |
tag_upgrade: true | |
build_all: "" | |
- compiler: gcc | |
build_opts: TILES=1 | |
debug: FULLDEBUG=1 | |
tag_upgrade: true | |
build_all: "" | |
- compiler: gcc | |
build_opts: TILES=1 | |
debug: "" | |
tag_upgrade: false | |
build_all: BUILD_ALL=1 | |
- compiler: clang | |
build_opts: TILES=1 | |
debug: "" | |
tag_upgrade: false | |
build_all: BUILD_ALL=1 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # all history | |
submodules: true | |
- name: Fix tags for release # work around https://github.com/actions/checkout/issues/882 | |
if: github.event.release.tag_name != null | |
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* # will break on a lightweight tag | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.7 | |
- name: Install requirements.txt | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r webserver/requirements/dev.py3.txt # use this until we have a repo-wide requirements.txt | |
working-directory: crawl-ref/source | |
- name: Install dependencies | |
run: ./deps.py --compiler ${{ matrix.compiler }} --build-opts "${{ matrix.build_opts }}" --debug-opts "${{ matrix.debug }}" | |
working-directory: .github/workflows | |
- name: Setup ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: linux-${{ matrix.compiler }}-${{ matrix.tag_upgrade }}-${{ matrix.build_opts }}-${{ matrix.debug }}-${{ matrix.build_all }} | |
restore-keys: | | |
linux-${{ matrix.compiler }}-${{ matrix.tag_upgrade }}-${{ matrix.build_opts }}-${{ matrix.debug }}-${{ matrix.build_all }} | |
linux-${{ matrix.compiler }}-${{ matrix.tag_upgrade }}-${{ matrix.build_opts }}-${{ matrix.debug }} | |
linux-${{ matrix.compiler }}-${{ matrix.tag_upgrade }}-${{ matrix.build_opts }} | |
linux-${{ matrix.compiler }}-${{ matrix.tag_upgrade }} | |
linux-${{ matrix.compiler }} | |
- name: "Setup ccache: prepend path" | |
run: "echo /usr/lib/ccache >> $GITHUB_PATH" | |
- name: "Setup ccache: update symlinks" | |
run: "/usr/sbin/update-ccache-symlinks" | |
- name: Run tag upgrade scripts | |
if: matrix.tag_upgrade == true | |
run: | | |
if ! grep -q '#define TAG_MAJOR_VERSION 34' tag-version.h ; then | |
echo "::error ::CI job for TAG_MAJOR_VERSION testing needs to be updated for new major tag" | |
exit 1 | |
fi | |
sed -i'' -e 's/^#define TAG_MAJOR_VERSION 34$/#define TAG_MAJOR_VERSION 35/' tag-version.h | |
util/tag-major-upgrade -t 35 | |
util/tag-35-upgrade.py | |
working-directory: crawl-ref/source | |
- run: make -j$(nproc) ${{ matrix.build_opts }} ${{ matrix.debug }} ${{ matrix.build_all }} | |
working-directory: crawl-ref/source | |
# Only run `make test` with TAG_MAJOR_VERSION 34 (it fails with 35). | |
- if: matrix.debug == 'FULLDEBUG=1' && (matrix.build_opts == '' || matrix.build_opts == 'WEBTILES=1') && matrix.tag_upgrade == false | |
run: make -j$(nproc) ${{ matrix.build_opts }} ${{ matrix.debug }} ${{ matrix.build_all }} test | |
working-directory: crawl-ref/source | |
env: | |
TERM: dumb | |
build_appimage: | |
permissions: | |
contents: write # for release creation (svenstaro/upload-release-action) | |
name: Linux AppImage ${{ matrix.build_type }} | |
runs-on: ubuntu-latest | |
if: github.event.release.tag_name != null | |
strategy: | |
matrix: | |
build_type: | |
- console | |
- tiles | |
build_opts: | |
- LINUXDEPLOY=/tmp/linuxdeploy-x86_64.AppImage | |
- TILES=1 LINUXDEPLOY=/tmp/linuxdeploy-x86_64.AppImage | |
exclude: | |
- build_type: console | |
build_opts: TILES=1 LINUXDEPLOY=/tmp/linuxdeploy-x86_64.AppImage | |
- build_type: tiles | |
build_opts: LINUXDEPLOY=/tmp/linuxdeploy-x86_64.AppImage | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # all history | |
submodules: false | |
- name: Fix tags for release # work around https://github.com/actions/checkout/issues/882 | |
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* # will break on a lightweight tag | |
- name: Install dependencies | |
run: ./deps.py --build-opts "${{ matrix.build_opts }}" --appimage | |
working-directory: .github/workflows | |
- name: Setup ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: appimage-${{ matrix.build_type }} | |
restore-keys: | | |
appimage-${{ matrix.build_type }} | |
appimage | |
- name: "Setup ccache: prepend path" | |
run: "echo /usr/lib/ccache >> $GITHUB_PATH" | |
- name: "Setup ccache: update symlinks" | |
run: "/usr/sbin/update-ccache-symlinks" | |
- run: make -j$(nproc) ${{ matrix.build_opts }} appimage | |
working-directory: crawl-ref/source | |
- name: Add build to release | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
tag: ${{ github.ref }} | |
file: crawl-ref/source/stone_soup-latest-linux-${{ matrix.build_type }}.x86_64.AppImage | |
asset_name: dcss-$tag-linux-${{ matrix.build_type }}.x86_64.AppImage | |
build_debian: | |
permissions: | |
contents: write # for release creation (svenstaro/upload-release-action) | |
name: Debian Packages ${{ matrix.arch }} | |
runs-on: ubuntu-latest | |
if: github.event.release.tag_name != null | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # all history | |
submodules: false | |
- name: Fix tags for release # work around https://github.com/actions/checkout/issues/882 | |
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* # will break on a lightweight tag | |
- name: Install dependencies | |
run: ./deps.py --build-opts TILES=1 --debian-packages | |
working-directory: .github/workflows | |
- run: sudo cp crawl-ref/docs/develop/release/pbuilderrc /etc/pbuilderrc | |
- name: Create i386 chroot directory | |
run: sudo DEBFULLNAME=Crawl\ bot [email protected] OS=debian DIST=oldstable ARCH=i386 cowbuilder --create --basepath /var/cache/pbuilder/oldstable-i386.cow | |
- name: Create amd64 chroot directory | |
run: sudo DEBFULLNAME=Crawl\ bot [email protected] OS=debian DIST=oldstable ARCH=amd64 cowbuilder --create --basepath /var/cache/pbuilder/oldstable-amd64.cow | |
- name: Build source packages | |
run: make -j$(nproc) package-source | |
working-directory: crawl-ref/source | |
- run: mkdir -p crawl-deb | |
- run: mv stone_soup-${{ github.ref_name }}-nodeps.tar.xz crawl-deb/crawl_${{ github.ref_name }}.orig.tar.xz | |
- run: tar Jxf crawl_${{ github.ref_name }}.orig.tar.xz | |
working-directory: crawl-deb | |
- run: mv stone_soup-${{ github.ref_name }} crawl-${{ github.ref_name }} | |
working-directory: crawl-deb | |
- run: mv source/debian . | |
working-directory: crawl-deb/crawl-${{ github.ref_name }} | |
- name: Update changelog if needed | |
run: .github/workflows/debian_changelog.py crawl-deb/crawl-${{ github.ref_name }}/debian/changelog ${{ github.ref_name }} | |
- name: Build the i386 packages | |
run: sudo DEBFULLNAME=Crawl\ bot [email protected] OS=debian DIST=oldstable ARCH=i386 pdebuild | |
working-directory: crawl-deb/crawl-${{ github.ref_name }} | |
- name: Build the amd64 packages | |
run: sudo DEBFULLNAME=Crawl\ bot [email protected] OS=debian DIST=oldstable ARCH=amd64 pdebuild | |
working-directory: crawl-deb/crawl-${{ github.ref_name }} | |
- name: Join the release files | |
run: tar Jcvf "${GITHUB_WORKSPACE}/debian.tar.xz" crawl* | |
working-directory: /var/cache/pbuilder/result | |
- name: Add build to release | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
tag: ${{ github.ref }} | |
file: debian.tar.xz | |
asset_name: dcss-$tag-debian-all.tar.xz | |
build_macos: | |
permissions: | |
contents: write # for release creation (svenstaro/upload-release-action) | |
name: macOS ${{ matrix.build_type }} | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
build_type: | |
# `tiles` and `console` can be used as build types to build a | |
# non-universal (x86_64, unless there are ever arm runners) binary | |
- tiles-universal | |
- console-universal | |
build_opts: | |
- "" | |
- TILES=y | |
exclude: | |
- build_type: tiles | |
build_opts: "" | |
- build_type: console | |
build_opts: TILES=y | |
- build_type: tiles-universal | |
build_opts: "" | |
- build_type: console-universal | |
build_opts: TILES=y | |
steps: | |
- name: Set up Homebrew | |
id: set-up-homebrew | |
uses: Homebrew/actions/setup-homebrew@master | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # all history | |
- name: Fix tags for release # work around https://github.com/actions/checkout/issues/882 | |
if: github.event.release.tag_name != null | |
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* # will break on a lightweight tag | |
- name: Checkout submodules | |
shell: bash | |
run: | | |
auth_header="$(git config --local --get http.https://github.com/.extraheader)" | |
git submodule sync --recursive | |
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1 | |
- name: Install Dependencies | |
run: | | |
brew install pkg-config libpng | |
sudo pip3 install PyYAML | |
- name: Python install bug workaround # https://github.com/actions/setup-python/issues/577 | |
run: | | |
find /usr/local/bin -type l -exec sh -c 'readlink -f "$1" \ | |
| grep -q ^/Library/Frameworks/Python.framework/Versions/' _ {} \; -exec rm -v {} \; | |
- name: Setup ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: macos-clang-${{ matrix.build_type }} | |
restore-keys: | | |
macos-clang-${{ matrix.build_type }} | |
macos-clang | |
- name: "Setup ccache: prepend path" | |
run: "echo $(brew --prefix)/opt/ccache/libexec >> $GITHUB_PATH" | |
- run: make -j$(sysctl -n hw.ncpu) mac-app-${{ matrix.build_type }} ${{matrix.build_opts }} | |
working-directory: crawl-ref/source | |
- name: Add build to release | |
if: github.event.release.tag_name != null | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
tag: ${{ github.ref }} | |
file: crawl-ref/source/mac-app-zips/latest.zip | |
asset_name: dcss-$tag-macos-${{ matrix.build_type}}.zip | |
build_mingw64_crosscompile: | |
permissions: | |
contents: write # for release creation (svenstaro/upload-release-action) | |
name: mingw64 ${{ matrix.build_type }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
build_type: | |
- tiles | |
- console | |
- installer | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # all history | |
- name: Fix tags for release # work around https://github.com/actions/checkout/issues/882 | |
if: github.event.release.tag_name != null | |
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* # will break on a lightweight tag | |
- name: Checkout submodules (for crosscompile) | |
shell: bash | |
run: | | |
auth_header="$(git config --local --get http.https://github.com/.extraheader)" | |
git submodule sync --recursive | |
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1 | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.7 | |
- name: Install requirements.txt | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r webserver/requirements/dev.py3.txt # use this until we have a repo-wide requirements.txt | |
working-directory: crawl-ref/source | |
- name: Install dependencies | |
run: ./deps.py --crosscompile | |
working-directory: .github/workflows | |
- name: Setup ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: key2-mingw64-${{ matrix.build_type }} | |
restore-keys: | | |
key2-mingw64-${{ matrix.build_type }} | |
key2-mingw64 | |
- name: "Setup ccache: prepend path" | |
run: "echo /usr/lib/ccache >> $GITHUB_PATH" | |
- name: "Setup ccache: update symlinks" | |
run: "/usr/sbin/update-ccache-symlinks" | |
- run: make -j$(nproc) CROSSHOST=i686-w64-mingw32 package-windows-${{ matrix.build_type }} | |
working-directory: crawl-ref/source | |
# The zip & installer targets create different sorts of names, so we need | |
# a little shell script magic here. | |
- name: Determine release file names | |
if: github.event.release.tag_name != null | |
id: release-names | |
run: | | |
if [[ ${{ matrix.build_type }} != installer ]] ; then | |
source='crawl-ref/source/stone_soup-latest-${{ matrix.build_type}}-win32.zip' | |
dest='dcss-$tag-win32-${{ matrix.build_type}}.zip' | |
else | |
source='crawl-ref/source/stone_soup-latest-win32-installer.exe' | |
dest='dcss-$tag-win32-installer.exe' | |
fi | |
echo "source=${source}" >> $GITHUB_OUTPUT | |
echo "dest=${dest}" >> $GITHUB_OUTPUT | |
- name: Add build to release | |
if: github.event.release.tag_name != null | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
tag: ${{ github.ref }} | |
file: ${{ steps.release-names.outputs.source }} | |
asset_name: ${{ steps.release-names.outputs.dest }} | |
codecov_catch2: | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
name: Catch2 (GCC/Linux) + Codecov | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # all history | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.7 | |
- name: Install requirements.txt | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r webserver/requirements/dev.py3.txt # use this until we have a repo-wide requirements.txt | |
working-directory: crawl-ref/source | |
- name: Install dependencies | |
run: ./deps.py --coverage | |
working-directory: .github/workflows | |
- name: Setup ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: catch2 | |
restore-keys: | | |
catch2 | |
- name: "Setup ccache: prepend path" | |
run: "echo /usr/lib/ccache >> $GITHUB_PATH" | |
- name: "Setup ccache: update symlinks" | |
run: "/usr/sbin/update-ccache-symlinks" | |
- run: make -j$(nproc) catch2-tests | |
working-directory: crawl-ref/source | |
- name: Generate LCOV data | |
working-directory: crawl-ref/source | |
run: > | |
lcov | |
--capture | |
--directory . | |
--output-file ../../coverage.info | |
--ignore-errors source | |
--rc lcov_branch_coverage=1 | |
- name: Send coverage data to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: ./coverage.info | |
flags: catch2 | |
fail_ci_if_error: false | |
webserver: | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
runs-on: ubuntu-20.04 # TODO: go back to ubuntu-latest | |
strategy: | |
matrix: | |
python-version: [3.6, 3.7, 3.8] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies (py3) | |
working-directory: crawl-ref/source/webserver | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements/dev.py3.txt | |
- name: Lint (flake8) | |
working-directory: crawl-ref/source/webserver | |
run: make lint | |
- name: Unit Tests (pytest) | |
working-directory: crawl-ref/source/webserver | |
run: pytest | |
- name: Unit Tests (unittest) | |
working-directory: crawl-ref/source/webserver | |
run: python -m unittest webtiles.userdb | |
build_headers: | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
name: Build headers ${{ matrix.compiler }} ${{ matrix.build_opts }} ${{ matrix.debug }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
compiler: | |
- gcc | |
- clang | |
build_opts: | |
- "" | |
- WEBTILES=1 | |
- TILES=1 | |
debug: | |
- "" | |
- FULLDEBUG=1 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # all history | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.7 | |
- name: Install requirements.txt | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r webserver/requirements/dev.py3.txt # use this until we have a repo-wide requirements.txt | |
working-directory: crawl-ref/source | |
- name: Install dependencies | |
run: ./deps.py --compiler ${{ matrix.compiler }} --build-opts "${{ matrix.build_opts }}" --debug-opts "${{ matrix.debug }}" | |
working-directory: .github/workflows | |
- name: Setup ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: build-headers-${{ matrix.compiler }}-${{ matrix.build_opts }}-${{ matrix.debug }} | |
restore-keys: | | |
build-headers-${{ matrix.compiler }}-${{ matrix.build_opts }}-${{ matrix.debug }} | |
build-headers-${{ matrix.compiler }}-${{ matrix.build_opts }} | |
build-headers-${{ matrix.compiler }} | |
build-headers | |
- name: "Setup ccache: prepend path" | |
run: "echo /usr/lib/ccache >> $GITHUB_PATH" | |
- name: "Setup ccache: update symlinks" | |
run: "/usr/sbin/update-ccache-symlinks" | |
- run: make -j$(nproc) header-build-tests | |
working-directory: crawl-ref/source | |
build_android: | |
name: Android | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
build_opts: | |
- ANDROID=1 | |
env: | |
NDK_CCACHE: ccache | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # all history | |
submodules: true | |
- name: Fix tags for release # work around https://github.com/actions/checkout/issues/882 | |
if: github.event.release.tag_name != null | |
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* # will break on a lightweight tag | |
- name: Install dependencies | |
run: ./deps.py --build-opts "${{ matrix.build_opts }}" | |
working-directory: .github/workflows | |
- name: Setup Gradle | |
uses: gradle/gradle-build-action@v2 | |
with: | |
gradle-version: 7.5 # known to work | |
- name: Setup ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: android | |
restore-keys: | | |
android | |
- name: "Setup ccache: extra configuration" | |
run: "ccache --set-config compiler_check=content" | |
- name: "Setup ccache: prepend path" | |
run: "echo /usr/lib/ccache >> $GITHUB_PATH" | |
- name: "Setup ccache: update symlinks" | |
run: "/usr/sbin/update-ccache-symlinks" | |
- name: Prepare Android build | |
run: make -j$(nproc) ${{ matrix.build_opts }} android | |
working-directory: crawl-ref/source | |
- name: Build with Gradle | |
run: gradle :app:assembleBuildTest | |
working-directory: crawl-ref/source/android-project | |
notify_irc: | |
name: "Notify #crawl-dev of build failure" | |
needs: | |
- linting | |
- build_linux | |
- build_macos | |
- build_mingw64_crosscompile | |
- codecov_catch2 | |
- webserver | |
if: failure() && github.event_name == 'push' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Build message | |
id: message | |
run: | | |
ref="${{ github.ref }}" | |
branch="${ref##refs/heads/}" | |
sha="${{ github.sha }}" | |
short_sha="${sha:0:8}" | |
# https://modern.ircdocs.horse/formatting.html | |
bold=$(printf '\x02') | |
col=$(printf '\x03') | |
red="04" | |
magenta="06" | |
yellow="08" | |
url="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
message="${bold}${col}${red}Build failed${col}${bold} for ${col}${yellow}${branch}${col} @ $short_sha ${col}${magenta}${url}" | |
echo "message=${message}" >> $GITHUB_OUTPUT | |
- uses: rectalogic/notify-irc@v1 | |
with: | |
server: irc.libera.chat | |
channel: ${{ secrets.IRC_CHANNEL }} | |
nickname: dcss-ci | |
message: ${{ steps.message.outputs.message }} |