libabigail/.github/workflows/libabigail.yaml
Ben Woodard d7557e8c25 Add github actions to support workflows
To facilitate collaboration with developers working on the BUILD-SI
project who are using github, I have been maintaining a clone of the
libabigail repo there. Having this repo also allows us to leverage
some of the tooling that github provides, in particular the ability to
have github actions test patches to verify that the builds succeed,
and all the regression tests run successfully. This will allow it to
better integrate with the normal agile workflow used by at least this
community of developers.

	* .github/workflows/build-container.yaml: New file.
	* .github/workflows/libabigail.yaml: Likewise.
	* .github/workflows/test.yaml: Likewise.
	* .github/workflows/test-fedora.yaml: Likewise.
	* .github/README.md: Likewise.
	* docker/Dockerfile.fedora: Likewise.
	* docker/Dockerfile.ubuntu: Likewise.
	* docker/Dockerfile.fedora-base: Likewise.
	* docker/Dockerfile.test: Likewise.
	* README-DOCKER.md: Likewise.

Signed-off-by: Vanessa Sochat <sochat1@llnl.gov>
Reviewed-by: Ben Woodard <woodard@redhat.com>
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2022-05-17 00:13:40 +02:00

127 lines
3.3 KiB
YAML

name: Libabigail ABI Checks
on:
pull_request: []
jobs:
# get-release:
# container: ghcr.io/woodard/libabigail-ubuntu-22.04:latest
# runs-on: ubuntu-latest
# steps:
# - name: Organize Files
# run: |
# mkdir -p /abi
# cp /opt/abigail-env/.spack-env/view/lib/libabigail.so /abi/
# cp /lib/x86_64-linux-gnu/libc.so.6 /abi/
# cp /lib/x86_64-linux-gnu/libstdc++.so.6 /abi/
# cp /lib/x86_64-linux-gnu/libsystemd.so.0 /abi/
# - name: Upload Libs
# uses: actions/upload-artifact@v3
# with:
# name: release-libs
# path: |
# /abi/libabigail.so
# /abi/libc.so.6
# /abi/libstdc++.so.6
# /abi/libsystemd.so.0
get-latest:
container: ghcr.io/woodard/libabigail-ubuntu-22.04:latest
runs-on: ubuntu-latest
steps:
- name: Organize Files
run: |
mkdir -p /abi
cp /opt/abigail-env/.spack-env/view/lib/libabigail.so /abi/
cp /lib/x86_64-linux-gnu/libc.so.6 /abi/
cp /lib/x86_64-linux-gnu/libstdc++.so.6 /abi/
cp /lib/x86_64-linux-gnu/libsystemd.so.0 /abi/
- name: Upload Libs
uses: actions/upload-artifact@v3
with:
name: latest-libs
path: |
/abi/libabigail.so
/abi/libc.so.6
/abi/libstdc++.so.6
/abi/libsystemd.so.0
get-pr:
container: ghcr.io/woodard/libabigail-ubuntu-22.04:latest
runs-on: ubuntu-latest
steps:
- name: Build Pull Request
uses: actions/checkout@v3
- name: Build
run: |
rm -rf /src
cp -R $PWD /src
ls /src
. /opt/spack/share/spack/setup-env.sh
cd /opt/abigail-env
spack install
- name: Organize Files
run: |
mkdir -p /abi
cp /opt/abigail-env/.spack-env/view/lib/libabigail.so /abi/
cp /lib/x86_64-linux-gnu/libc.so.6 /abi/
cp /lib/x86_64-linux-gnu/libstdc++.so.6 /abi/
cp /lib/x86_64-linux-gnu/libsystemd.so.0 /abi/
- name: Upload Libs
uses: actions/upload-artifact@v3
with:
name: pr-libs
path: |
/abi/libabigail.so
/abi/libc.so.6
/abi/libstdc++.so.6
/abi/libsystemd.so.0
abi:
runs-on: ubuntu-latest
needs: [get-latest, get-pr] # get-release
strategy:
fail-fast: false
matrix:
# Testing every paired library for release vs pr and main vs. pr
libs: ["libabigail.so",
"libc.so.6",
"libstdc++.so.6",
"libsystemd.so.0"]
# Artifact pairs (named) for comparison)
artifacts: [["pr-libs", "latest-libs"]]
#["pr-libs", "release-libs"]]
steps:
- name: Download Previous Version
uses: actions/download-artifact@v2
with:
name: ${{ matrix.artifacts[1] }}
path: previous/
- name: Download Pull Request Version
uses: actions/download-artifact@v2
with:
name: ${{ matrix.artifacts[0] }}
path: current/
- name: Show Files
run: |
ls current/
ls previous/
- name: Run Libabigail
uses: buildsi/libabigail-action@0.0.11
env:
lib: ${{ matrix.libs }}
with:
abidiff: previous/${{ env.lib }} current/${{ env.lib }}
abidw: "--abidiff current/${{ env.lib }}"