mirror of
https://github.com/libevent/libevent.git
synced 2025-01-31 09:12:55 +08:00
fc24a2990d
Public CI workers has pretty high load, and sometimes you need to test only specific workflow, i.e. windows. So let's add ability to limit which workflow should be run.
76 lines
2.3 KiB
YAML
76 lines
2.3 KiB
YAML
---
|
|
name: abi
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
## TODO: use source tag name in the destination repo
|
|
#tags:
|
|
# - release-*
|
|
|
|
jobs:
|
|
abi:
|
|
runs-on: ubuntu-18.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
|
|
if: "!contains(github.event.head_commit.message, 'ci skip') && !contains(github.event.head_commit.message, 'ci/abi skip')"
|
|
strategy:
|
|
fail-fast: false
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2.0.0
|
|
|
|
- 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
|