forked from Tulip-Dev/tulip
-
Notifications
You must be signed in to change notification settings - Fork 1
133 lines (133 loc) · 4.58 KB
/
macos-macports-build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
name: macos-macports-build
on: [push, pull_request]
jobs:
macos:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
env:
CLANG_VERSION: 17
PYTHON_VERSION: "3.12"
strategy:
fail-fast: false
matrix:
config:
- name: Talipot build on macOS M1
os: flyci-macos-large-latest-m1
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- name: Checkout Talipot code
uses: actions/checkout@v3
- name: Compute environment variable
run: |
PYTHON_VERSION_NO_DOT=$(echo $PYTHON_VERSION | sed 's/\.//')
echo "PYTHON_VERSION_NO_DOT=$PYTHON_VERSION_NO_DOT" >> $GITHUB_ENV
- name: Prepare ccache timestamp
id: get-current-date
run: |
echo "date=$(date -u "+%Y-%m-%d-%H-%m-%S")" >> $GITHUB_OUTPUT
shell: bash
- name: Cache files
uses: actions/cache@v3
with:
path: |
/Users/runner/Library/Caches/ccache
/Users/runner/.macports-ci-ccache
key: ${{ matrix.config.os }}-ccache-${{ steps.get-current-date.outputs.date }}
restore-keys: |
${{ matrix.config.os }}-ccache-
- name: Install MacPorts
run: |
curl -LO https://raw.githubusercontent.com/GiovanniBussi/macports-ci/master/macports-ci
source ./macports-ci install
source ./macports-ci ccache
- name: Install Talipot build dependencies
run: sudo port -N install
cmake
clang-${{ env.CLANG_VERSION }}
ccache
zlib
qhull
yajl
zstd
graphviz
libgit2
python${{ env.PYTHON_VERSION_NO_DOT }}
py${{ env.PYTHON_VERSION_NO_DOT }}-sip
pkgconfig
cppunit
freetype
fontconfig
fribidi
glew
qt5-qtbase
qt5-qttools
qt5-qtwebkit
quazip
py${{ env.PYTHON_VERSION_NO_DOT }}-pip
- name: Install Sphinx
run: pip-${{ env.PYTHON_VERSION }} install sphinx
- name: Save MacPorts ccache
run: source ./macports-ci ccache --save
- name: Create build directory
run: mkdir build
- name: Configure Talipot core build with CMake
working-directory: ./build
run: cmake .. -DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=$PWD/install
-DCMAKE_C_COMPILER=/opt/local/bin/clang-mp-${{ env.CLANG_VERSION }}
-DCMAKE_CXX_COMPILER=/opt/local/bin/clang++-mp-${{ env.CLANG_VERSION }}
-DPython3_EXECUTABLE=/opt/local/bin/python${{ env.PYTHON_VERSION }}
-DTALIPOT_BUILD_TESTS=ON
-DTALIPOT_USE_CCACHE=ON
-DTALIPOT_BUILD_DOC=OFF
-DTALIPOT_BUILD_CORE_ONLY=ON
- name: Talipot core build
working-directory: ./build
run: make -j4
- name: Install Talipot core build
working-directory: ./build
run: make -j4 install
- name: Run Talipot core build unit tests
working-directory: ./build
run: make tests
- name: Configure Talipot complete build with CMake
working-directory: ./build
run: cmake .
-DTALIPOT_BUILD_CORE_ONLY=OFF
-DTALIPOT_BUILD_DOC=ON
- name: Talipot complete build
working-directory: ./build
run: make -j4
- name: Install Talipot complete build
working-directory: ./build
run: make -j4 install
- name: Run Talipot complete build unit tests
working-directory: ./build
run: make tests
- name: Check Talipot application can be executed
working-directory: ./build/install/bin
run: ./talipot --check-application-starts --debug-plugins-load
- name: Generate Talipot dmg bundle
if: matrix.config.os == 'macos-11'
working-directory: ./build
run: make bundle
- name: Upload Talipot bundle to GitHub Actions artifacts
if: matrix.config.os == 'macos-11'
uses: actions/upload-artifact@v3
with:
name: Talipot macOS bundles
path: ./build/Talipot*.dmg
- name: Upload Talipot bundle to dev-latest prerelease
if: |
github.ref == 'refs/tags/dev-latest' &&
matrix.config.os == 'macos-11'
uses: ncipollo/release-action@v1
with:
allowUpdates: true
name: Talipot development build
prerelease: true
artifacts: ./build/Talipot*.dmg
token: ${{ secrets.GITHUB_TOKEN }}