diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index caa52a4..047cb4a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -91,6 +91,8 @@ jobs: build-system-dynamic: strategy: fail-fast: false + matrix: + libgit2: [ '1.1.0' ] name: Go (system-wide, dynamic) runs-on: ubuntu-20.04 @@ -103,10 +105,10 @@ jobs: id: go - name: Check out code into the Go module directory uses: actions/checkout@v1 - - name: Build libgit2 + - name: Build libgit2 ${{ matrix.libgit2 }} run: | git submodule update --init - sudo ./script/build-libgit2.sh --dynamic --system + sudo env BUILD_LIBGIT_REF=v${{ matrix.libgit2 }} ./script/build-libgit2.sh --dynamic --system - name: Test run: make test diff --git a/git_bundled_static.go b/git_bundled_static.go index 48d9be5..4d10d45 100644 --- a/git_bundled_static.go +++ b/git_bundled_static.go @@ -9,8 +9,8 @@ package git #cgo CFLAGS: -DLIBGIT2_STATIC #include -#if LIBGIT2_VER_MAJOR != 1 || LIBGIT2_VER_MINOR != 1 -# error "Invalid libgit2 version; this git2go supports libgit2 v1.1" +#if LIBGIT2_VER_MAJOR != 1 || LIBGIT2_VER_MINOR < 1 || LIBGIT2_VER_MINOR > 1 +# error "Invalid libgit2 version; this git2go supports libgit2 between v1.1.0 and v1.1.0" #endif */ import "C" diff --git a/git_system_dynamic.go b/git_system_dynamic.go index 571a77f..3013804 100644 --- a/git_system_dynamic.go +++ b/git_system_dynamic.go @@ -7,8 +7,8 @@ package git #cgo CFLAGS: -DLIBGIT2_DYNAMIC #include -#if LIBGIT2_VER_MAJOR != 1 || LIBGIT2_VER_MINOR != 1 -# error "Invalid libgit2 version; this git2go supports libgit2 v1.1" +#if LIBGIT2_VER_MAJOR != 1 || LIBGIT2_VER_MINOR < 1 || LIBGIT2_VER_MINOR > 1 +# error "Invalid libgit2 version; this git2go supports libgit2 between v1.1.0 and v1.1.0" #endif */ import "C" diff --git a/git_system_static.go b/git_system_static.go index 3049763..f3da651 100644 --- a/git_system_static.go +++ b/git_system_static.go @@ -7,8 +7,8 @@ package git #cgo CFLAGS: -DLIBGIT2_STATIC #include -#if LIBGIT2_VER_MAJOR != 1 || LIBGIT2_VER_MINOR != 1 -# error "Invalid libgit2 version; this git2go supports libgit2 v1.1" +#if LIBGIT2_VER_MAJOR != 1 || LIBGIT2_VER_MINOR < 1 || LIBGIT2_VER_MINOR > 1 +# error "Invalid libgit2 version; this git2go supports libgit2 between v1.1.0 and v1.1.0" #endif */ import "C" diff --git a/script/build-libgit2.sh b/script/build-libgit2.sh index dd11314..9df8c3c 100755 --- a/script/build-libgit2.sh +++ b/script/build-libgit2.sh @@ -46,6 +46,11 @@ if [ -z "${BUILD_SHARED_LIBS}" ]; then usage fi +if [ -n "${BUILD_LIBGIT_REF}" ]; then + git -C "${VENDORED_PATH}" checkout "${BUILD_LIBGIT_REF}" + trap "git submodule update --init" EXIT +fi + if [ "${BUILD_SYSTEM}" = "ON" ]; then BUILD_INSTALL_PREFIX=${SYSTEM_INSTALL_PREFIX-"/usr"} else