Skip to content

ci fixes

ci fixes #90

Workflow file for this run

name: build
on:
- push
- pull_request
jobs:
gcc:
name: GCC
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
submodules: true
- run: source .github/ubuntu_deps.sh
- run: source .github/build.sh
- uses: codecov/codecov-action@v3
with:
name: ${{ github.job }}
- uses: actions/upload-artifact@v3
with:
name: codecov debug results ${{ github.job }}
path: "/tmp/codecov.*.gz"
tarball:
name: Tarball
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
submodules: true
- run: source .github/ubuntu_deps.sh
- run: |
date=$(date +%Y-%m-%d)
./make-tarball.sh --nightly znc-git-$date /tmp/znc-git-$date.tar.gz
tar xvf /tmp/znc-git-$date.tar.gz
cd znc-git-$date
export CFGFLAGS="--with-gtest=$GITHUB_WORKSPACE/third_party/googletest/googletest --with-gmock=$GITHUB_WORKSPACE/third_party/googletest/googlemock --disable-swig"
source $GITHUB_WORKSPACE/.github/build.sh
- uses: actions/upload-artifact@v3
with:
name: znc-tarball
path: /tmp/znc-git*.tar.gz
if-no-files-found: error
- uses: codecov/codecov-action@v3
with:
name: ${{ github.job }}
# can be removed when asan below is fixed
clang:
name: Clang
runs-on: ubuntu-24.04
env:
CXX: clang++
CC: clang
steps:
- uses: actions/checkout@v4
with:
submodules: true
- run: source .github/ubuntu_deps.sh
- run: source .github/build.sh
- uses: codecov/codecov-action@v3
with:
name: ${{ github.job }}
- uses: actions/upload-artifact@v3
with:
name: codecov debug results ${{ github.job }}
path: "/tmp/codecov.*.gz"
#clang_asan:
#name: Clang ASAN
#runs-on: ubuntu-24.04
#env:
#CXX: clang++
#CC: clang
#CXXFLAGS: "-fsanitize=address -O1 -fno-omit-frame-pointer -fno-optimize-sibling-calls -fPIE"
#LDFLAGS: "-fsanitize=address -pie"
#steps:
#- uses: actions/checkout@v4
#with:
#submodules: true
#- run: source .github/ubuntu_deps.sh
#- run: source .github/build.sh
#- uses: codecov/codecov-action@v3
#clang_tsan:
#name: Clang TSAN
#runs-on: ubuntu-24.04
#env:
#CXX: clang++
#CC: clang
#CXXFLAGS: "-fsanitize=thread -O1 -fPIE"
#LDFLAGS: "-fsanitize=thread"
#steps:
#- uses: actions/checkout@v4
#with:
#submodules: true
#- run: source .github/ubuntu_deps.sh
#- run: source .github/build.sh
#- uses: codecov/codecov-action@v3
# TODO: enable
#CXXFLAGS: "-fsanitize=memory -O1 -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize-memory-track-origins"
#LDFLAGS: "-fsanitize=memory"
#CXXFLAGS: "-fsanitize=undefined -O1 -fPIE -fno-sanitize-recover"
#LDFLAGS: "-fsanitize=undefined -pie -fno-sanitize-recover"
macos:
name: macOS
runs-on: macos-latest
env:
# This doesn't make big difference, since it's the same compiler, but we also use this variable to select lcov vs llvm-cov
CXX: clang++
CC: clang
steps:
- uses: actions/checkout@v4
with:
submodules: true
- run: |
brew update
brew install icu4c qt6 gettext pkg-config cpanminus boost argon2
- run: source .github/build.sh
- uses: codecov/codecov-action@v3
docker:
name: Docker push
runs-on: ubuntu-latest
needs:
- gcc
- tarball
- clang
steps:
- uses: actions/checkout@v4
with:
submodules: true
- id: tagger
run: |
git fetch --unshallow
echo "::set-output name=describe::$(git describe)"
if [[ "$GITHUB_REF" == refs/heads/master ]]; then
echo "::set-output name=latest::type=raw,latest"
fi
- uses: docker/metadata-action@v5
id: meta
with:
images: zncbouncer/znc-git
tags: |
type=ref,event=branch
type=ref,event=branch,suffix=-${{steps.tagger.outputs.describe}}
${{steps.tagger.outputs.latest}}
- run: echo "${GITHUB_REF#refs/heads/}-${{steps.tagger.outputs.describe}}" > .nightly
- run: cat .nightly
- uses: docker/login-action@v3
if: ${{ github.repository == 'znc/znc' && github.event_name == 'push' }}
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: docker/build-push-action@v5
with:
context: .
push: ${{ github.repository == 'znc/znc' && github.event_name == 'push' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
VERSION_EXTRA=+docker-git-
docs:
name: Docs push
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- run: sudo apt-get update
- run: sudo apt-get install -y doxygen graphviz python3-yaml
- run: echo "$KEY" > ~/znc-github-key
env:
KEY: ${{ secrets.SSH_GITHUB_KEY_FOR_CI_BOT }}
- run: chmod 0600 ~/znc-github-key
- run: mkdir -p ~/.ssh
- run: cp .ci/ssh-config ~/.ssh/config
# It's not travis anymore, but oh well. TODO: fix
- run: git config --global user.email "travis-ci@znc.in"
- run: git config --global user.name "znc-travis"
- run: .ci/generate-docs.sh