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

Commit 52e9a93

Browse files
author
Paulo Gomes
committed
Split macos release workflow
Signed-off-by: Paulo Gomes <[email protected]>
1 parent da24a17 commit 52e9a93

File tree

2 files changed

+107
-63
lines changed

2 files changed

+107
-63
lines changed

.github/workflows/build.yaml

+5-63
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ on:
44
push:
55
branches:
66
- main
7-
- libgit2-*
87
tags:
98
- '**'
109
paths-ignore:
@@ -14,89 +13,32 @@ on:
1413
- README.md
1514

1615
permissions:
17-
contents: write # needed to write releases
1816
packages: write # needed for ghcr access
1917

2018
jobs:
2119

2220
mac-build:
23-
# This job builds and releases "universal libraries" that are
24-
# supported by both darwin-amd64 and darwin-arm64.
25-
#
26-
# First builds in amd64, then cross-compile in arm64. Later combining
27-
# both outcomes onto a single binary for each static library.
28-
#
29-
# `macos-11` has been picked as support for arm64 was only added on Xcode 12.
30-
# Although some minor versions of Catalina 10.15 can support it, at the time
31-
# of testing, GitHub's macos-10.15 did not seem to.
32-
# Cross-compiling to arm64 on that runner consistently failed.
3321
runs-on: macos-11
3422
steps:
3523
- name: Checkout
3624
uses: actions/checkout@v2
37-
- name: Build universal static libraries for Darwin
25+
- name: Test build script for darwin-amd64
3826
run: |
3927
TARGET_DIR=${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64 \
4028
BUILD_ROOT_DIR=${GITHUB_WORKSPACE}/libgit2/build/amd \
4129
./hack/static.sh all
42-
30+
env:
31+
MACOSX_DEPLOYMENT_TARGET: 10.15
32+
- name: Test cross compile script for darwin-arm64
33+
run: |
4334
TARGET_DIR=${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64 \
4435
BUILD_ROOT_DIR=${GITHUB_WORKSPACE}/libgit2/build/arm \
4536
TARGET_ARCH=arm64 \
4637
CMAKE_APPLE_SILICON_PROCESSOR=arm64 \
4738
./hack/static.sh all
48-
49-
mkdir -p ./libgit2-darwin/lib
50-
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/include ./libgit2-darwin/
51-
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/share ./libgit2-darwin/
52-
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/cmake ./libgit2-darwin/lib/
53-
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/engines-3 ./libgit2-darwin/lib/
54-
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/ossl-modules ./libgit2-darwin/lib/
55-
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/pkgconfig ./libgit2-darwin/lib/
56-
57-
libtool -static -o ./libgit2-darwin/lib/libcrypto.a \
58-
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libcrypto.a \
59-
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libcrypto.a
60-
libtool -static -o ./libgit2-darwin/lib/libgit2.a \
61-
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libgit2.a \
62-
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libgit2.a
63-
libtool -static -o ./libgit2-darwin/lib/libssh2.a \
64-
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libssh2.a \
65-
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libssh2.a
66-
libtool -static -o ./libgit2-darwin/lib/libssl.a \
67-
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libssl.a \
68-
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libssl.a
69-
libtool -static -o ./libgit2-darwin/lib/libz.a \
70-
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libz.a \
71-
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libz.a
72-
73-
tar -zcvf darwin-libs.tar.gz ./libgit2-darwin
7439
env:
7540
MACOSX_DEPLOYMENT_TARGET: 10.15
7641

77-
- name: Create Release
78-
if: github.event_name != 'pull_request'
79-
id: create_release
80-
uses: actions/create-release@v1
81-
env:
82-
GITHUB_TOKEN: ${{ github.token }}
83-
with:
84-
release_name: ${{ github.ref }}
85-
tag_name: ${{ github.ref }}
86-
draft: false
87-
prerelease: true
88-
- name: Upload Release Asset
89-
if: github.event_name != 'pull_request'
90-
id: upload-release-asset
91-
uses: actions/upload-release-asset@v1
92-
env:
93-
GITHUB_TOKEN: ${{ github.token }}
94-
with:
95-
upload_url: ${{ steps.create_release.outputs.upload_url }}
96-
asset_path: ./darwin-libs.tar.gz
97-
asset_name: darwin-libs.tar.gz
98-
asset_content_type: application/gzip
99-
10042
build:
10143
runs-on: ubuntu-latest
10244
env:

.github/workflows/release.yaml

+102
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
---
2+
name: 'Release MacOS static libraries'
3+
on:
4+
push:
5+
tags:
6+
- '**'
7+
8+
workflow_dispatch:
9+
inputs:
10+
tag:
11+
description: 'release prefix'
12+
default: 'rc'
13+
required: true
14+
15+
permissions:
16+
contents: write # needed to write releases
17+
18+
jobs:
19+
20+
mac-build:
21+
# This job builds and releases "universal libraries" that are
22+
# supported by both darwin-amd64 and darwin-arm64.
23+
#
24+
# First builds in amd64, then cross-compile in arm64. Later combining
25+
# both outcomes onto a single binary for each static library.
26+
#
27+
# `macos-11` has been picked as support for arm64 was only added on Xcode 12.
28+
# Although some minor versions of Catalina 10.15 can support it, at the time
29+
# of testing, GitHub's macos-10.15 did not seem to.
30+
# Cross-compiling to arm64 on that runner consistently failed.
31+
runs-on: macos-11
32+
steps:
33+
- name: Checkout
34+
uses: actions/checkout@v2
35+
- name: Build universal static libraries for Darwin
36+
run: |
37+
TARGET_DIR=${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64 \
38+
BUILD_ROOT_DIR=${GITHUB_WORKSPACE}/libgit2/build/amd \
39+
./hack/static.sh all
40+
41+
TARGET_DIR=${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64 \
42+
BUILD_ROOT_DIR=${GITHUB_WORKSPACE}/libgit2/build/arm \
43+
TARGET_ARCH=arm64 \
44+
CMAKE_APPLE_SILICON_PROCESSOR=arm64 \
45+
./hack/static.sh all
46+
47+
mkdir -p ./libgit2-darwin/lib
48+
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/include ./libgit2-darwin/
49+
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/share ./libgit2-darwin/
50+
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/cmake ./libgit2-darwin/lib/
51+
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/engines-3 ./libgit2-darwin/lib/
52+
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/ossl-modules ./libgit2-darwin/lib/
53+
mv ${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/pkgconfig ./libgit2-darwin/lib/
54+
55+
libtool -static -o ./libgit2-darwin/lib/libcrypto.a \
56+
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libcrypto.a \
57+
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libcrypto.a
58+
libtool -static -o ./libgit2-darwin/lib/libgit2.a \
59+
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libgit2.a \
60+
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libgit2.a
61+
libtool -static -o ./libgit2-darwin/lib/libssh2.a \
62+
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libssh2.a \
63+
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libssh2.a
64+
libtool -static -o ./libgit2-darwin/lib/libssl.a \
65+
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libssl.a \
66+
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libssl.a
67+
libtool -static -o ./libgit2-darwin/lib/libz.a \
68+
${GITHUB_WORKSPACE}/build/libgit2-darwin-amd64/lib/libz.a \
69+
${GITHUB_WORKSPACE}/build/libgit2-darwin-arm64/lib/libz.a
70+
71+
tar -zcvf darwin-libs.tar.gz ./libgit2-darwin
72+
env:
73+
MACOSX_DEPLOYMENT_TARGET: 10.15
74+
75+
- name: Prepare
76+
id: prep
77+
run: |
78+
VERSION="${{ github.event.inputs.tag }}-${GITHUB_SHA::8}"
79+
if [[ $GITHUB_REF == refs/tags/* ]]; then
80+
VERSION=${GITHUB_REF/refs\/tags\//}
81+
fi
82+
echo ::set-output name=VERSION::${VERSION}
83+
- name: Create Release
84+
id: create_release
85+
uses: actions/create-release@v1
86+
env:
87+
GITHUB_TOKEN: ${{ github.token }}
88+
with:
89+
release_name: ${{ steps.prep.outputs.VERSION }}
90+
tag_name: ${{ steps.prep.outputs.VERSION }}
91+
draft: false
92+
prerelease: true
93+
- name: Upload Release Asset
94+
id: upload-release-asset
95+
uses: actions/upload-release-asset@v1
96+
env:
97+
GITHUB_TOKEN: ${{ github.token }}
98+
with:
99+
upload_url: ${{ steps.create_release.outputs.upload_url }}
100+
asset_path: ./darwin-libs.tar.gz
101+
asset_name: darwin-libs.tar.gz
102+
asset_content_type: application/gzip

0 commit comments

Comments
 (0)