@@ -19,45 +19,55 @@ permissions:
1919
2020jobs :
2121
22- linux-amd64-release :
22+ linux-x86_64-all-libs :
2323 runs-on : ubuntu-latest
2424 steps :
2525 - name : Checkout
2626 uses : actions/checkout@v3
2727 - name : Build static libraries - libgit2 compiled with libssh2 and openssl
2828 run : |
29- TARGET_DIR=${GITHUB_WORKSPACE}/build/libgit2-linux \
29+ TARGET_DIR=${GITHUB_WORKSPACE}/build/libgit2-linux-all-libs \
3030 BUILD_ROOT_DIR=${GITHUB_WORKSPACE}/libgit2/build/amd \
3131 ./hack/static.sh all
3232
33- mkdir -p ./libgit2-linux-libgit2- all/
34- mv ${GITHUB_WORKSPACE}/build/libgit2-linux/include ./libgit2-linux-libgit2- all/
35- mv ${GITHUB_WORKSPACE}/build/libgit2-linux/share ./libgit2-linux-libgit2- all/
36- mv ${GITHUB_WORKSPACE}/build/libgit2-linux/lib ./libgit2-linux-libgit2- all/
37- mv ${GITHUB_WORKSPACE}/build/libgit2-linux/lib64 ./libgit2-linux-libgit2- all/
33+ mkdir -p ./libgit2-linux-all-libs /
34+ mv ${GITHUB_WORKSPACE}/build/libgit2-linux-all-libs /include ./libgit2-linux-all-libs /
35+ mv ${GITHUB_WORKSPACE}/build/libgit2-linux-all-libs /share ./libgit2-linux-all-libs /
36+ mv ${GITHUB_WORKSPACE}/build/libgit2-linux-all-libs /lib ./libgit2-linux-all-libs /
37+ mv ${GITHUB_WORKSPACE}/build/libgit2-linux-all-libs /lib64 ./libgit2-linux-all-libs /
3838
39- tar -zcvf linux-x86_64-libgit2- all-libs.tar.gz libgit2-linux-libgit2- all
39+ tar -zcvf linux-x86_64-all-libs.tar.gz libgit2-linux-all-libs
4040 rm -rf ${GITHUB_WORKSPACE}/build ${GITHUB_WORKSPACE}/libgit2
41+ - uses : actions/upload-artifact@v3
42+ with :
43+ name : release-artifact
44+ path : ' *.tar.gz'
45+ if-no-files-found : error
4146
47+ linux-x86_64-libgit2-only :
48+ runs-on : ubuntu-latest
49+ steps :
50+ - name : Checkout
51+ uses : actions/checkout@v3
4252 - name : Build static libraries - libgit2 only
4353 run : |
44- TARGET_DIR=${GITHUB_WORKSPACE}/build/libgit2-linux \
54+ TARGET_DIR=${GITHUB_WORKSPACE}/build/build_libgit2_only \
4555 BUILD_ROOT_DIR=${GITHUB_WORKSPACE}/libgit2/build/amd \
4656 ./hack/static.sh build_libgit2_only
4757
48- mkdir -p ./libgit2- linux-libgit2-only/
49- mv ${GITHUB_WORKSPACE}/build/libgit2-linux /include ./libgit2- linux-libgit2-only/
50- mv ${GITHUB_WORKSPACE}/build/libgit2-linux /lib ./libgit2- linux-libgit2-only/
58+ mkdir -p ./linux-libgit2-only/
59+ mv ${GITHUB_WORKSPACE}/build/build_libgit2_only /include ./linux-libgit2-only/
60+ mv ${GITHUB_WORKSPACE}/build/build_libgit2_only /lib ./linux-libgit2-only/
5161
52- tar -zcvf linux-x86_64-libgit2-only-lib .tar.gz libgit2- linux-libgit2-only
62+ tar -zcvf linux-x86_64-libgit2-only.tar.gz linux-libgit2-only
5363 rm -rf ${GITHUB_WORKSPACE}/build ${GITHUB_WORKSPACE}/libgit2
5464 - uses : actions/upload-artifact@v3
5565 with :
5666 name : release-artifact
5767 path : ' *.tar.gz'
5868 if-no-files-found : error
5969
60- darwin-release :
70+ darwin-all-libs :
6171 # This job builds and releases "universal libraries" that are
6272 # supported by both darwin-amd64 and darwin-arm64.
6373 #
7484 uses : actions/checkout@v3
7585 - name : Build universal static libraries for Darwin - libgit2 compiled with libssh2 and openssl
7686 run : |
77- TARGET_DIR=${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64 \
87+ # The amd64 is used as base, using the target dir name (darwin-all-libs)
88+ # instead of the platform specific one, removes the need of replacing the
89+ # path in the .pc files.
90+ TARGET_DIR=${GITHUB_WORKSPACE}/build/darwin-all-libs \
7891 BUILD_ROOT_DIR=${GITHUB_WORKSPACE}/libgit2/build/amd \
7992 ./hack/static.sh all
8093
@@ -84,39 +97,65 @@ jobs:
8497 CMAKE_APPLE_SILICON_PROCESSOR=arm64 \
8598 ./hack/static.sh all
8699
87- mkdir -p ./libgit2-darwin-libgit2-all/lib
88- mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/include ./libgit2-darwin-libgit2-all/
89- mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/share ./libgit2-darwin-libgit2-all/
90- mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/cmake ./libgit2-darwin-libgit2-all/lib/
91- mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/engines-3 ./libgit2-darwin-libgit2-all/lib/
92- mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/ossl-modules ./libgit2-darwin-libgit2-all/lib/
93- mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/pkgconfig ./libgit2-darwin-libgit2-all/lib/
94100
95- libtool -static -o ./libgit2-darwin-libgit2-all/lib/libcrypto.a \
96- ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libcrypto.a \
101+ LIBGIT2_SED="s;-L/Applications/Xcode_.* ;;g"
102+ LIBGIT2PC="${GITHUB_WORKSPACE}/build/darwin-all-libs/lib/pkgconfig/libgit2.pc"
103+
104+ # pkgconfig files may contain absolute paths to its dependencies that is specific
105+ # to the runner - machine used to compile the library.
106+ # We need to remove the absolute path of iconv, so when the library is consumed
107+ # pkgconfig will automatically try to find it through the default search paths
108+ # on the target machine.
109+ if command -v gsed &> /dev/null; then
110+ gsed -i "${LIBGIT2_SED}" "${LIBGIT2PC}"
111+ else
112+ sed -i "" "${LIBGIT2_SED}" "${LIBGIT2PC}"
113+ fi
114+
115+ mkdir -p ./darwin-all-libs/lib
116+ mv ${GITHUB_WORKSPACE}/build/darwin-all-libs/include ./darwin-all-libs/
117+ mv ${GITHUB_WORKSPACE}/build/darwin-all-libs/share ./darwin-all-libs/
118+ mv ${GITHUB_WORKSPACE}/build/darwin-all-libs/lib/cmake ./darwin-all-libs/lib/
119+ mv ${GITHUB_WORKSPACE}/build/darwin-all-libs/lib/engines-3 ./darwin-all-libs/lib/
120+ mv ${GITHUB_WORKSPACE}/build/darwin-all-libs/lib/ossl-modules ./darwin-all-libs/lib/
121+ mv ${GITHUB_WORKSPACE}/build/darwin-all-libs/lib/pkgconfig ./darwin-all-libs/lib/
122+
123+ libtool -static -o ./darwin-all-libs/lib/libcrypto.a \
124+ ${GITHUB_WORKSPACE}/build/darwin-all-libs/lib/libcrypto.a \
97125 ${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libcrypto.a
98126
99- libtool -static -o ./libgit2- darwin-libgit2- all/lib/libgit2.a \
100- ${GITHUB_WORKSPACE}/build/libgit2- darwin-amd64 /lib/libgit2.a \
127+ libtool -static -o ./darwin-all-libs /lib/libgit2.a \
128+ ${GITHUB_WORKSPACE}/build/darwin-all-libs /lib/libgit2.a \
101129 ${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libgit2.a
102130
103- libtool -static -o ./libgit2- darwin-libgit2- all/lib/libssh2.a \
104- ${GITHUB_WORKSPACE}/build/libgit2- darwin-amd64 /lib/libssh2.a \
131+ libtool -static -o ./darwin-all-libs /lib/libssh2.a \
132+ ${GITHUB_WORKSPACE}/build/darwin-all-libs /lib/libssh2.a \
105133 ${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libssh2.a
106134
107- libtool -static -o ./libgit2- darwin-libgit2- all/lib/libssl.a \
108- ${GITHUB_WORKSPACE}/build/libgit2- darwin-amd64 /lib/libssl.a \
135+ libtool -static -o ./darwin-all-libs /lib/libssl.a \
136+ ${GITHUB_WORKSPACE}/build/darwin-all-libs /lib/libssl.a \
109137 ${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libssl.a
110138
111- libtool -static -o ./libgit2- darwin-libgit2- all/lib/libz.a \
112- ${GITHUB_WORKSPACE}/build/libgit2- darwin-amd64 /lib/libz.a \
139+ libtool -static -o ./darwin-all-libs /lib/libz.a \
140+ ${GITHUB_WORKSPACE}/build/darwin-all-libs /lib/libz.a \
113141 ${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libz.a
114142
115- tar -zcvf darwin-libgit2- all-libs.tar.gz libgit2- darwin-libgit2- all
143+ tar -zcvf darwin-all-libs.tar.gz darwin-all-libs
116144 rm -rf ${GITHUB_WORKSPACE}/build ${GITHUB_WORKSPACE}/libgit2
117145 env :
118146 MACOSX_DEPLOYMENT_TARGET : 10.15
147+ - uses : actions/upload-artifact@v3
148+ with :
149+ name : release-artifact
150+ path : ' *.tar.gz'
151+ if-no-files-found : error
119152
153+ # similar to darwin-all-libs, but only compiles libgit2.
154+ darwin-libgit2-only :
155+ runs-on : macos-11
156+ steps :
157+ - name : Checkout
158+ uses : actions/checkout@v3
120159 - name : Build universal static libraries for Darwin - libgit2 only
121160 run : |
122161 TARGET_DIR=${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64 \
@@ -129,14 +168,14 @@ jobs:
129168 CMAKE_APPLE_SILICON_PROCESSOR=arm64 \
130169 ./hack/static.sh build_libgit2_only
131170
132- mkdir -p ./libgit2- darwin-libgit2-only/lib
133- mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/include ./libgit2- darwin-libgit2-only/
171+ mkdir -p ./darwin-libgit2-only/lib
172+ mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/include ./darwin-libgit2-only/
134173
135- libtool -static -o ./libgit2- darwin-libgit2-only/lib/libgit2.a \
174+ libtool -static -o ./darwin-libgit2-only/lib/libgit2.a \
136175 ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libgit2.a \
137176 ${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libgit2.a
138177
139- tar -zcvf darwin-libs- libgit2-only.tar.gz libgit2- darwin-libgit2-only
178+ tar -zcvf darwin-libgit2-only.tar.gz darwin-libgit2-only
140179 rm -rf ${GITHUB_WORKSPACE}/build ${GITHUB_WORKSPACE}/libgit2
141180 env :
142181 MACOSX_DEPLOYMENT_TARGET : 10.15
@@ -148,7 +187,7 @@ jobs:
148187
149188 goreleaser :
150189 runs-on : ubuntu-latest
151- needs : [linux-amd64-release, darwin-release ]
190+ needs : [linux-x86_64-all-libs, linux-x86_64-libgit2-only, darwin-all-libs, darwin-libgit2-only ]
152191 if : ${{ always() && contains(join(needs.*.result, ','), 'success') }}
153192 steps :
154193 - uses : actions/checkout@v3
0 commit comments