aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-01-06 06:05:24 +0000
committerSam James <sam@gentoo.org>2023-01-10 05:21:40 +0000
commitaf4026c31eb079618f67a62b2f59faae31850e5b (patch)
tree019e1b932ced1d2083e4ddc1acc38bfef89f5961
parentCI: drop Travis (diff)
downloadelfix-af4026c31eb079618f67a62b2f59faae31850e5b.tar.gz
elfix-af4026c31eb079618f67a62b2f59faae31850e5b.tar.bz2
elfix-af4026c31eb079618f67a62b2f59faae31850e5b.zip
CI: add Github Actions
Signed-off-by: Sam James <sam@gentoo.org> Closes: https://github.com/gentoo/elfix/pull/3 Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--.github/workflows/build-test-ci.yml85
1 files changed, 85 insertions, 0 deletions
diff --git a/.github/workflows/build-test-ci.yml b/.github/workflows/build-test-ci.yml
new file mode 100644
index 0000000..b2f2bf0
--- /dev/null
+++ b/.github/workflows/build-test-ci.yml
@@ -0,0 +1,85 @@
+# GitHub actions workflow.
+# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions
+
+name: Build+Test CI
+
+#on:
+# push:
+# branches: [master, gh-actions]
+# tags: [v*]
+# pull_request:
+# types: [created, opened, edited, push]
+
+on: [pull_request, push]
+
+jobs:
+ make:
+ strategy:
+ matrix:
+ os: [ubuntu-latest]
+ cc: [gcc, clang]
+ sanitize: [none, asan, ubsan]
+ fail-fast: false
+ runs-on: ${{ matrix.os }}
+ env:
+ CC: ${{ matrix.cc }}
+ SANITIZER: ${{ matrix.sanitize }}
+ ASAN_OPTIONS: "detect_leaks=0" # known leaks in install-xattr
+ UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
+ steps:
+ - name: Install dependencies
+ run: |
+ sudo apt-get update -qq
+ sudo apt-get install build-essential gcc clang attr libattr1-dev autotools-dev automake autoconf libelf-dev libtool -qy
+
+ case "$SANITIZER" in
+ none)
+ ;;
+ asan)
+ echo CFLAGS="-O2 -ggdb3 -fsanitize=address" >> $GITHUB_ENV
+ echo CXXFLAGS="-O2 -ggdb3 -fsanitize=address" >> $GITHUB_ENV
+ echo LDFLAGS="-fsanitize=address" >> $GITHUB_ENV
+ ;;
+ ubsan)
+ echo CFLAGS="-O2 -ggdb3 -fsanitize=undefined" >> $GITHUB_ENV
+ echo CXXFLAGS="-O2 -ggdb3 -fsanitize=undefined" >> $GITHUB_ENV
+ echo LDFLAGS="-fsanitize=undefined" >> $GITHUB_ENV
+ ;;
+ esac
+
+ - uses: actions/checkout@v3
+ name: Checkout
+
+ - name: Build (main)
+ run: |
+ ./autogen.sh
+ ./configure || cat config.log
+ make V=1
+ make V=1 check
+ make V=1 distcheck
+
+ - name: Build (misc/fix-gnustack)
+ run: |
+ case "$CC" in
+ gcc)
+ ;;
+ clang)
+ # Clang doesn't create executable stacks by default, so
+ # tests for fix-gnustack fail without this.
+ export CFLAGS="$CFLAGS -Wl,-z,execstack"
+ export LDFLAGS="$LDFLAGS -Wl,-z,execstack"
+ ;;
+ esac
+
+ cd misc/fix-gnustack
+ ./autogen.sh
+ ./configure || cat config.log
+ make V=1
+ make V=1 check
+ make V=1 distcheck
+
+ - name: Build (misc/install-xattr)
+ run: |
+ cd misc/install-xattr
+ make V=1
+ make check