Skip to content
This repository was archived by the owner on Dec 16, 2022. It is now read-only.

Commit 028519d

Browse files
author
Paulo Gomes
committed
build: split workflows and align job names
Signed-off-by: Paulo Gomes <[email protected]>
1 parent a1044bc commit 028519d

File tree

2 files changed

+86
-41
lines changed

2 files changed

+86
-41
lines changed

.github/workflows/build.yaml

+9-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ permissions:
1818

1919
jobs:
2020

21-
mac-build:
21+
darwin-all-libs-test:
2222
runs-on: macos-11
2323
steps:
2424
- name: Checkout
@@ -29,13 +29,19 @@ jobs:
2929
rm -rf ${GITHUB_WORKSPACE}/build rm -rf ${GITHUB_WORKSPACE}/libgit2
3030
env:
3131
MACOSX_DEPLOYMENT_TARGET: 10.15
32+
33+
darwin-libgit2-only-test:
34+
runs-on: macos-11
35+
steps:
36+
- name: Checkout
37+
uses: actions/checkout@v3
3238
- name: Test build script for darwin-amd64 - libgit2-only
3339
run: |
3440
LIBGIT2_ONLY=true make dev-test
3541
env:
3642
MACOSX_DEPLOYMENT_TARGET: 10.15
3743

38-
build:
44+
docker-build-all-libs:
3945
runs-on: ubuntu-latest
4046
env:
4147
PLATFORMS: linux/amd64,linux/arm/v7,linux/arm64
@@ -147,7 +153,7 @@ jobs:
147153
cosign sign $image
148154
done
149155
150-
build-libgit2-only:
156+
docker-build-libgit2-only:
151157
runs-on: ubuntu-latest
152158
env:
153159
PLATFORMS: linux/amd64,linux/arm/v7,linux/arm64

.github/workflows/release.yaml

+77-38
Original file line numberDiff line numberDiff line change
@@ -19,45 +19,55 @@ permissions:
1919

2020
jobs:
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
#
@@ -74,7 +84,10 @@ jobs:
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

Comments
 (0)