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

Commit 93a33be

Browse files
committed
modify ci workflows to release and publish libgit2-only artifacts
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
1 parent dd0c896 commit 93a33be

File tree

3 files changed

+144
-40
lines changed

3 files changed

+144
-40
lines changed

.github/workflows/build.yaml

Lines changed: 51 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -83,24 +83,37 @@ jobs:
8383
restore-keys: |
8484
${{ runner.os }}-buildx-ghcache-
8585
- run: cat ./hack/static.sh
86-
- name: Build candidate image
87-
id: build_candidate
86+
- name: Build candidate image - libgit2 compiled with libssh2 and openssl
87+
id: build_candidate_libgit2_all
8888
uses: docker/build-push-action@v2
8989
with:
9090
context: .
9191
file: Dockerfile
9292
platforms: ${{ env.PLATFORMS }}
9393
push: true
94-
tags: localhost:5000/${{ github.repository_owner }}/golang-with-libgit2:latest
94+
tags: localhost:5000/${{ github.repository_owner }}/golang-with-libgit2-all:latest
9595
cache-from: type=local,src=/tmp/.buildx-cache
9696
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
97-
- name: Inspect candidate image
97+
- name: Build candidate image - libgit2 only
98+
id: build_candidate_libgti2_only
99+
uses: docker/build-push-action@v2
100+
with:
101+
context: .
102+
file: Dockerfile.libgit2-only
103+
platforms: ${{ env.PLATFORMS }}
104+
push: true
105+
tags: localhost:5000/${{ github.repository_owner }}/golang-with-libgit2-only:latest
106+
cache-from: type=local,src=/tmp/.buildx-cache
107+
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
108+
- name: Inspect candidate images
98109
run: |
99-
docker buildx imagetools inspect localhost:5000/${{ github.repository_owner }}/golang-with-libgit2:latest
100-
- name: Test candidate image
110+
docker buildx imagetools inspect localhost:5000/${{ github.repository_owner }}/golang-with-libgit2-all:latest
111+
docker buildx imagetools inspect localhost:5000/${{ github.repository_owner }}/golang-with-libgit2-only:latest
112+
- name: Test candidate images
101113
id: test_candidate
102114
run: |
103-
IMG=localhost:5000/${{ github.repository_owner }}/golang-with-libgit2 make test
115+
IMG=localhost:5000/${{ github.repository_owner }}/golang-with-libgit2-all make test
116+
IMG=localhost:5000/${{ github.repository_owner }}/golang-with-libgit2-only LIBGIT2_ONLY=true make test
104117
- # Temp fix
105118
# https://github.com/docker/build-push-action/issues/252
106119
# https://github.com/moby/buildkit/issues/1896
@@ -115,21 +128,21 @@ jobs:
115128
registry: ghcr.io
116129
username: ${{ github.repository_owner }}
117130
password: ${{ secrets.GITHUB_TOKEN }}
118-
- name: Compose release candidate metadata
119-
id: meta
131+
- name: Compose release candidate metadata - golang-with-libgit2-all
132+
id: meta_libgit2_all
120133
uses: docker/metadata-action@v3
121134
if: github.event_name != 'pull_request'
122135
with:
123136
images: |
124-
ghcr.io/${{ github.repository_owner }}/golang-with-libgit2
137+
ghcr.io/${{ github.repository_owner }}/golang-with-libgit2-all
125138
tags: |
126139
type=schedule
127140
type=ref,event=branch
128141
type=ref,event=tag
129142
type=sha
130143
type=sha,format=long
131-
- name: Release candidate image
132-
id: release_candidate
144+
- name: Release candidate image - golang-with-libgit2-all
145+
id: release_candidate_libgit2_all
133146
if: github.event_name != 'pull_request'
134147
uses: docker/build-push-action@v2
135148
with:
@@ -140,3 +153,29 @@ jobs:
140153
tags: ${{ steps.meta.outputs.tags }}
141154
labels: ${{ steps.meta.outputs.labels }}
142155
cache-from: type=local,src=/tmp/.buildx-cache
156+
157+
- name: Compose release candidate metadata - golang-with-libgit2-only
158+
id: meta_libgit2_only
159+
uses: docker/metadata-action@v3
160+
if: github.event_name != 'pull_request'
161+
with:
162+
images: |
163+
ghcr.io/${{ github.repository_owner }}/golang-with-libgit2-only
164+
tags: |
165+
type=schedule
166+
type=ref,event=branch
167+
type=ref,event=tag
168+
type=sha
169+
type=sha,format=long
170+
- name: Release candidate image - golang-with-libgit2-only
171+
id: release_candidate_libgit2_only
172+
if: github.event_name != 'pull_request'
173+
uses: docker/build-push-action@v2
174+
with:
175+
context: .
176+
file: Dockerfile.libgit2-only
177+
platforms: ${{ env.PLATFORMS }}
178+
push: true
179+
tags: ${{ steps.meta.outputs.tags }}
180+
labels: ${{ steps.meta.outputs.labels }}
181+
cache-from: type=local,src=/tmp/.buildx-cache

.github/workflows/release.yaml

Lines changed: 91 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -48,28 +48,52 @@ jobs:
4848
steps:
4949
- name: Checkout
5050
uses: actions/checkout@v2
51-
- name: Build static libraries
51+
- name: Build static libraries - libgit2 compiled with libssh2 and openssl
5252
run: |
5353
TARGET_DIR=${GITHUB_WORKSPACE}/build/libgit2-linux \
5454
BUILD_ROOT_DIR=${GITHUB_WORKSPACE}/libgit2/build/amd \
5555
./hack/static.sh all
5656
57-
mkdir -p ./libgit2-linux/
58-
mv ${GITHUB_WORKSPACE}/build/libgit2-linux/include ./libgit2-linux/
59-
mv ${GITHUB_WORKSPACE}/build/libgit2-linux/share ./libgit2-linux/
60-
mv ${GITHUB_WORKSPACE}/build/libgit2-linux/lib ./libgit2-linux/
61-
mv ${GITHUB_WORKSPACE}/build/libgit2-linux/lib64 ./libgit2-linux/
57+
mkdir -p ./libgit2-linux-libgit2-all/
58+
mv ${GITHUB_WORKSPACE}/build/libgit2-linux/include ./libgit2-linux-libgit2-all/
59+
mv ${GITHUB_WORKSPACE}/build/libgit2-linux/share ./libgit2-linux-libgit2-all/
60+
mv ${GITHUB_WORKSPACE}/build/libgit2-linux/lib ./libgit2-linux-libgit2-all/
61+
mv ${GITHUB_WORKSPACE}/build/libgit2-linux/lib64 ./libgit2-linux-libgit2-all/
6262
63-
tar -zcvf linux-x86_64-libs.tar.gz libgit2-linux
63+
tar -zcvf linux-x86_64-libgit2-all-libs.tar.gz libgit2-linux-libgit2-all
64+
rm -rf ${GITHUB_WORKSPACE}/build ${GITHUB_WORKSPACE}/libgit2
6465
- name: Upload Release Asset
65-
id: upload-release-asset
66+
id: upload-release-asset-libgit2-all
6667
uses: actions/upload-release-asset@v1
6768
env:
6869
GITHUB_TOKEN: ${{ github.token }}
6970
with:
7071
upload_url: ${{ needs.github_release.outputs.release_upload_url }}
71-
asset_path: ./linux-x86_64-libs.tar.gz
72-
asset_name: linux-x86_64-libs.tar.gz
72+
asset_path: ./linux-x86_64-libgit2-all-libs.tar.gz
73+
asset_name: linux-x86_64-libgit2-all-libs.tar.gz
74+
asset_content_type: application/gzip
75+
76+
- name: Build static libraries - libgit2 only
77+
run: |
78+
TARGET_DIR=${GITHUB_WORKSPACE}/build/libgit2-linux \
79+
BUILD_ROOT_DIR=${GITHUB_WORKSPACE}/libgit2/build/amd \
80+
./hack/static.sh build_libgit2_only
81+
82+
mkdir -p ./libgit2-linux-libgit2-only/
83+
mv ${GITHUB_WORKSPACE}/build/libgit2-linux/include ./libgit2-linux-libgit2-only/
84+
mv ${GITHUB_WORKSPACE}/build/libgit2-linux/lib ./libgit2-linux-libgit2-only/
85+
86+
tar -zcvf linux-x86_64-libgit2-only-lib.tar.gz libgit2-linux-libgit2-only
87+
rm -rf ${GITHUB_WORKSPACE}/build ${GITHUB_WORKSPACE}/libgit2
88+
- name: Upload Release Asset
89+
id: upload-release-asset-libgit2-only
90+
uses: actions/upload-release-asset@v1
91+
env:
92+
GITHUB_TOKEN: ${{ github.token }}
93+
with:
94+
upload_url: ${{ needs.github_release.outputs.release_upload_url }}
95+
asset_path: ./linux-x86_64-libgit2-only-lib.tar.gz
96+
asset_name: linux-x86_64-libgit2-only-lib.tar.gz
7397
asset_content_type: application/gzip
7498

7599
darwin-release:
@@ -88,7 +112,7 @@ jobs:
88112
steps:
89113
- name: Checkout
90114
uses: actions/checkout@v2
91-
- name: Build universal static libraries for Darwin
115+
- name: Build universal static libraries for Darwin - libgit2 compiled with libssh2 and openssl
92116
run: |
93117
TARGET_DIR=${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64 \
94118
BUILD_ROOT_DIR=${GITHUB_WORKSPACE}/libgit2/build/amd \
@@ -100,40 +124,80 @@ jobs:
100124
CMAKE_APPLE_SILICON_PROCESSOR=arm64 \
101125
./hack/static.sh all
102126
103-
mkdir -p ./libgit2-darwin/lib
104-
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/include ./libgit2-darwin/
105-
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/share ./libgit2-darwin/
106-
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/cmake ./libgit2-darwin/lib/
107-
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/engines-3 ./libgit2-darwin/lib/
108-
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/ossl-modules ./libgit2-darwin/lib/
109-
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/pkgconfig ./libgit2-darwin/lib/
127+
mkdir -p ./libgit2-darwin-libgit2-all/lib
128+
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/include ./libgit2-darwin-libgit2-all/
129+
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/share ./libgit2-darwin-libgit2-all/
130+
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/cmake ./libgit2-darwin-libgt2-all/lib/
131+
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/engines-3 ./libgit2-darwin-libgit2-all/lib/
132+
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/ossl-modules ./libgit2-darwin-libgit2-all/lib/
133+
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/pkgconfig ./libgit2-darwin-libgit2-all/lib/
110134
111-
libtool -static -o ./libgit2-darwin/lib/libcrypto.a \
135+
libtool -static -o ./libgit2-darwin-libgit2-all/lib/libcrypto.a \
112136
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libcrypto.a \
113137
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libcrypto.a
114-
libtool -static -o ./libgit2-darwin/lib/libgit2.a \
138+
139+
libtool -static -o ./libgit2-darwin-libgit2-all/lib/libgit2.a \
115140
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libgit2.a \
116141
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libgit2.a
117-
libtool -static -o ./libgit2-darwin/lib/libssh2.a \
142+
143+
libtool -static -o ./libgit2-darwin-libgit2-all/lib/libssh2.a \
118144
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libssh2.a \
119145
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libssh2.a
120-
libtool -static -o ./libgit2-darwin/lib/libssl.a \
146+
147+
libtool -static -o ./libgit2-darwin-libgit2-all/lib/libssl.a \
121148
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libssl.a \
122149
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libssl.a
123-
libtool -static -o ./libgit2-darwin/lib/libz.a \
150+
151+
libtool -static -o ./libgit2-darwin-libgit2-all/lib/libz.a \
124152
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libz.a \
125153
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libz.a
126154
127-
tar -zcvf darwin-libs.tar.gz libgit2-darwin
155+
tar -zcvf darwin-libgit2-all-libs.tar.gz libgit2-darwin-libgit2-all
156+
rm -rf ${GITHUB_WORKSPACE}/build ${GITHUB_WORKSPACE}/libgit2
157+
env:
158+
MACOSX_DEPLOYMENT_TARGET: 10.15
159+
- name: Upload Release Asset
160+
id: upload-release-asset-libgit2-all
161+
uses: actions/upload-release-asset@v1
162+
env:
163+
GITHUB_TOKEN: ${{ github.token }}
164+
with:
165+
upload_url: ${{ needs.github_release.outputs.release_upload_url }}
166+
asset_path: ./darwin-libgit2-all-libs.tar.gz
167+
asset_name: darwin-libgit2-all-libs.tar.gz
168+
asset_content_type: application/gzip
169+
170+
- name: Build universal static libraries for Darwin - libgit2 only
171+
run: |
172+
TARGET_DIR=${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64 \
173+
BUILD_ROOT_DIR=${GITHUB_WORKSPACE}/libgit2/build/amd \
174+
./hack/static.sh build_libgit2_only
175+
176+
TARGET_DIR=${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64 \
177+
BUILD_ROOT_DIR=${GITHUB_WORKSPACE}/libgit2/build/arm \
178+
TARGET_ARCH=arm64 \
179+
CMAKE_APPLE_SILICON_PROCESSOR=arm64 \
180+
./hack/static.sh build_libgit2_only
181+
182+
mkdir -p ./libgit2-darwin-libgit2-only
183+
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/include ./libgit2-darwin-libgit2-only/
184+
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib ./libgit2-darwin-libgit2-only/
185+
186+
libtool -static -o ./libgit2-darwin-libgit2-only/lib/libgit2.a \
187+
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libgit2.a \
188+
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libgit2.a
189+
190+
tar -zcvf darwin-libs-libgit2-only.tar.gz libgit2-darwin-libgit2-only
191+
rm -rf ${GITHUB_WORKSPACE}/build ${GITHUB_WORKSPACE}/libgit2
128192
env:
129193
MACOSX_DEPLOYMENT_TARGET: 10.15
130194
- name: Upload Release Asset
131-
id: upload-release-asset
195+
id: upload-release-asset-libgit2-only
132196
uses: actions/upload-release-asset@v1
133197
env:
134198
GITHUB_TOKEN: ${{ github.token }}
135199
with:
136200
upload_url: ${{ needs.github_release.outputs.release_upload_url }}
137-
asset_path: ./darwin-libs.tar.gz
138-
asset_name: darwin-libs.tar.gz
201+
asset_path: ./darwin-libs-libgit2-only.tar.gz
202+
asset_name: darwin-libs-libgit2-only.tar.gz
139203
asset_content_type: application/gzip

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
TAG ?= latest
2-
ifeq($(LIBGIT2_ONLY),true)
2+
3+
ifeq ($(LIBGIT2_ONLY),true)
34
IMG ?= ghcr.io/fluxcd/golang-with-libgit2-only
45
else
56
IMG ?= ghcr.io/fluxcd/golang-with-libgit2-all

0 commit comments

Comments
 (0)