--- name: upstream on: push: branches: - master permissions: read-all jobs: coverage-job: permissions: checks: write # for coverallsapp/github-action to create new checks contents: read # for actions/checkout to fetch code runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 - name: Cache uses: actions/cache@v3 with: path: build key: ${{ matrix.os }}-coverage-v2 - name: Install Depends run: sudo apt install zlib1g-dev libssl-dev build-essential lcov libmbedtls-dev - name: Build shell: bash run: | export JOBS=20 mkdir -p build cd build cmake .. -DEVENT__COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug make -j $JOBS - name: Test shell: bash run: | export CTEST_PARALLEL_LEVEL=$JOBS export CTEST_OUTPUT_ON_FAILURE=1 cd build make verify_coverage - name: Coveralls GitHub Action uses: coverallsapp/github-action@v1 with: github-token: ${{ secrets.GITHUB_TOKEN }} path-to-lcov: ./build/coverage.info.cleaned - uses: actions/upload-artifact@v1 if: failure() with: name: coverage-build path: build abi-job: permissions: contents: write # for Git to git push runs-on: ubuntu-20.04 ## TODO: use docker image, but for now this is not possible without hacks ## due to even public registry require some authentication: ## - https://github.community/t5/GitHub-Actions/docker-pull-from-public-GitHub-Package-Registry-fail-with-quot/td-p/32782/page/5 #container: docker.pkg.github.com/azat/docker-images/lvc-debian strategy: fail-fast: false steps: - uses: actions/checkout@v3 - name: Install Dependencies run: sudo apt install abi-tracker abi-monitor abi-dumper abi-compliance-checker pkgdiff vtable-dumper - name: Generate shell: bash run: | ./extra/abi-check/abi_check.sh env: ABI_CHECK_ROOT: /tmp/le-abi-root - name: Deploy env: LIBEVENT_DEPLOY_ABI_PRI: ${{ secrets.LIBEVENT_DEPLOY_ABI_PRI }} COMMIT_ID: ${{ github.sha }} run: | [[ -n $LIBEVENT_DEPLOY_ABI_PRI ]] || exit 0 mkdir -p ~/.ssh echo "$LIBEVENT_DEPLOY_ABI_PRI" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan github.com >> ~/.ssh/known_hosts short_commit_id="${COMMIT_ID:0:7}" owner_name="${{ github.event.repository.owner.name }}" cd /tmp/le-abi-root/work/abi-check git init git config --local user.name "Libevent Github Robot" git config --local user.email "robot@libevent.org" git add -f . git commit -m "Update ABI/API backward compatibility report (libevent/libevent@$short_commit_id)" git push -f git@github.com:$owner_name/abi master # XXX: requires container-id for docker - uses: actions/upload-artifact@v1 if: failure() with: name: build path: /tmp/le-abi-root - uses: actions/upload-artifact@v1 with: name: build path: /tmp/le-abi-root/work/abi-check doxygen-job: permissions: contents: write # for Git to git push runs-on: ubuntu-20.04 strategy: fail-fast: false steps: - uses: actions/checkout@v3 - name: Install Depends run: | sudo apt install doxygen libmbedtls-dev - name: Generate Doxygen shell: bash run: | mkdir build cd build cmake -DEVENT__DOXYGEN=ON .. make doxygen - name: Deploy Documentation env: LIBEVENT_DEPLOY_PRI: ${{ secrets.LIBEVENT_DEPLOY_PRI }} COMMIT_ID: ${{ github.sha }} run: | [[ -n $LIBEVENT_DEPLOY_PRI ]] || exit 0 mkdir -p ~/.ssh echo "$LIBEVENT_DEPLOY_PRI" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan github.com >> ~/.ssh/known_hosts short_commit_id="${COMMIT_ID:0:7}" owner_name="${{ github.event.repository.owner.name }}" cd ./build/doxygen/html git init git config --local user.name "Libevent Github Robot" git config --local user.email "robot@libevent.org" git add -f . git commit -m "Update documentation (libevent/libevent@$short_commit_id)" git push -f git@github.com:$owner_name/doc master - uses: actions/upload-artifact@v1 if: failure() with: name: doxygen-build path: build