# the name is used by the shields.io at top of readme name: build on: - push - pull_request jobs: gcc: name: GCC runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 with: submodules: true - run: source .github/ubuntu_deps.sh - run: source .github/build.sh - uses: codecov/codecov-action@v1 with: name: ${{ github.job }} - uses: actions/upload-artifact@v2 with: name: codecov debug results ${{ github.job }} path: "/tmp/codecov.*.gz" tarball: name: Tarball runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 with: submodules: true - run: source .github/ubuntu_deps.sh - run: | ./make-tarball.sh --nightly znc-git-2015-01-16 /tmp/znc-tarball.tar.gz tar xvf /tmp/znc-tarball.tar.gz cd znc-git-2015-01-16 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: codecov/codecov-action@v1 with: name: ${{ github.job }} # can be removed when asan below is fixed clang: name: Clang runs-on: ubuntu-20.04 env: CXX: clang++ CC: clang steps: - uses: actions/checkout@v2 with: submodules: true - run: source .github/ubuntu_deps.sh - run: source .github/build.sh - uses: codecov/codecov-action@v1 with: name: ${{ github.job }} - uses: actions/upload-artifact@v2 with: name: codecov debug results ${{ github.job }} path: "/tmp/codecov.*.gz" #clang_asan: #name: Clang ASAN #runs-on: ubuntu-20.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@v2 #with: #submodules: true #- run: source .github/ubuntu_deps.sh #- run: source .github/build.sh #- uses: codecov/codecov-action@v1 #clang_tsan: #name: Clang TSAN #runs-on: ubuntu-20.04 #env: #CXX: clang++ #CC: clang #CXXFLAGS: "-fsanitize=thread -O1 -fPIE" #LDFLAGS: "-fsanitize=thread" #steps: #- uses: actions/checkout@v2 #with: #submodules: true #- run: source .github/ubuntu_deps.sh #- run: source .github/build.sh #- uses: codecov/codecov-action@v1 # 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 #steps: #- uses: actions/checkout@v2 #with: #submodules: true #- run: | #brew update #brew install icu4c qt5 gettext pkg-config cpanminus boost #- run: source .github/build.sh #- uses: codecov/codecov-action@v1 docker: name: Docker push runs-on: ubuntu-latest needs: - gcc - tarball - clang steps: - uses: actions/checkout@v2 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@v3 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@v1 if: ${{ github.repository == 'znc/znc' && github.event_name == 'push' }} with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - uses: docker/build-push-action@v2 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@v2 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