summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlhchavez <[email protected]>2020-08-15 17:19:53 -0700
committerGitHub <[email protected]>2020-08-15 17:19:53 -0700
commit53149517592d613935e6bcbcea18f8ddb6bb546e (patch)
tree85874a8e442c509148b81323370e54dbea93a61f
parentfc6eaf36388841b16ff004e1d48e887d3f9613dc (diff)
Refresh the GitHub Actions CI (#632)
This change: * Builds the library with Go 1.14, too. * Builds the non-legacy tests with Ubuntu Focal (20.04). * Adds testing for system-wide libraries, both static and dynamic versions. * Fixes a typo in the README.
-rw-r--r--.github/workflows/ci.yml52
-rw-r--r--README.md2
-rwxr-xr-xscript/build-libgit2.sh57
3 files changed, 88 insertions, 23 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 5472f22..88e6c57 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -46,10 +46,10 @@ jobs:
strategy:
fail-fast: false
matrix:
- go: [ '1.11', '1.12', '1.13' ]
+ go: [ '1.11', '1.12', '1.13', '1.14' ]
name: Go ${{ matrix.go }}
- runs-on: ubuntu-18.04
+ runs-on: ubuntu-20.04
steps:
- name: Set up Go
@@ -71,13 +71,13 @@ jobs:
fail-fast: false
name: Go (dynamic)
- runs-on: ubuntu-18.04
+ runs-on: ubuntu-20.04
steps:
- name: Set up Go
uses: actions/setup-go@v1
with:
- go-version: '1.13'
+ go-version: '1.14'
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v1
@@ -87,3 +87,47 @@ jobs:
make build-libgit2-dynamic
- name: Test
run: make test-dynamic
+
+ build-system-dynamic:
+ strategy:
+ fail-fast: false
+ name: Go (system-wide, dynamic)
+
+ runs-on: ubuntu-20.04
+
+ steps:
+ - name: Set up Go
+ uses: actions/setup-go@v1
+ with:
+ go-version: '1.14'
+ id: go
+ - name: Check out code into the Go module directory
+ uses: actions/checkout@v1
+ - name: Build libgit2
+ run: |
+ git submodule update --init
+ sudo ./script/build-libgit2.sh --dynamic --system
+ - name: Test
+ run: make test
+
+ build-system-static:
+ strategy:
+ fail-fast: false
+ name: Go (system-wide, static)
+
+ runs-on: ubuntu-20.04
+
+ steps:
+ - name: Set up Go
+ uses: actions/setup-go@v1
+ with:
+ go-version: '1.14'
+ id: go
+ - name: Check out code into the Go module directory
+ uses: actions/checkout@v1
+ - name: Build libgit2
+ run: |
+ git submodule update --init
+ sudo ./script/build-libgit2.sh --static --system
+ - name: Test
+ run: go test --count=1 --tags "static,system_libgit2" ./...
diff --git a/README.md b/README.md
index 05dddec..79a96e9 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ The `master` branch follows the tip of libgit2 itself (with some lag) and as suc
### Which branch to send Pull requests to
-If there's something version-specific that you'd want to contribute to, you can send them to the `release-${MAJOR}-${MINOR}` branches, which follow libgit2's releases.
+If there's something version-specific that you'd want to contribute to, you can send them to the `release-${MAJOR}.${MINOR}` branches, which follow libgit2's releases.
Installing
----------
diff --git a/script/build-libgit2.sh b/script/build-libgit2.sh
index 7398cd9..98ff78b 100755
--- a/script/build-libgit2.sh
+++ b/script/build-libgit2.sh
@@ -6,33 +6,54 @@
set -e
-if [ "$#" -eq "0" ]; then
- echo "Usage: $0 <--dynamic|--static>">&2
+usage() {
+ echo "Usage: $0 <--dynamic|--static> [--system]">&2
exit 1
+}
+
+if [ "$#" -eq "0" ]; then
+ usage
fi
ROOT="$(cd "$(dirname "$0")/.." && echo "${PWD}")"
VENDORED_PATH="${ROOT}/vendor/libgit2"
+BUILD_SYSTEM=OFF
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ --static)
+ BUILD_PATH="${ROOT}/static-build"
+ BUILD_SHARED_LIBS=OFF
+ ;;
-case "$1" in
- --static)
- BUILD_PATH="${ROOT}/static-build"
- BUILD_SHARED_LIBS=OFF
- ;;
+ --dynamic)
+ BUILD_PATH="${ROOT}/dynamic-build"
+ BUILD_SHARED_LIBS=ON
+ ;;
- --dynamic)
- BUILD_PATH="${ROOT}/dynamic-build"
- BUILD_SHARED_LIBS=ON
- ;;
+ --system)
+ BUILD_SYSTEM=ON
+ ;;
- *)
- echo "Usage: $0 <--dynamic|--static>">&2
- exit 1
- ;;
-esac
+ *)
+ usage
+ ;;
+ esac
+ shift
+done
-mkdir -p "${BUILD_PATH}/build" "${BUILD_PATH}/install/lib"
+if [ -z "${BUILD_SHARED_LIBS}" ]; then
+ usage
+fi
+
+if [ "${BUILD_SYSTEM}" = "ON" ]; then
+ BUILD_INSTALL_PREFIX="/usr"
+else
+ BUILD_INSTALL_PREFIX="${BUILD_PATH}/install"
+ mkdir -p "${BUILD_PATH}/install/lib"
+fi
+mkdir -p "${BUILD_PATH}/build" &&
cd "${BUILD_PATH}/build" &&
cmake -DTHREADSAFE=ON \
-DBUILD_CLAR=OFF \
@@ -40,7 +61,7 @@ cmake -DTHREADSAFE=ON \
-DREGEX_BACKEND=builtin \
-DCMAKE_C_FLAGS=-fPIC \
-DCMAKE_BUILD_TYPE="RelWithDebInfo" \
- -DCMAKE_INSTALL_PREFIX="${BUILD_PATH}/install" \
+ -DCMAKE_INSTALL_PREFIX="${BUILD_INSTALL_PREFIX}" \
-DCMAKE_INSTALL_LIBDIR="lib" \
"${VENDORED_PATH}" &&