-
Notifications
You must be signed in to change notification settings - Fork 6
139 lines (124 loc) · 4.93 KB
/
ci.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
134
135
136
137
138
139
name: CI
on:
workflow_dispatch:
pull_request:
push:
jobs:
build-and-test:
name: Run on ${{ matrix.os }} with SOFA ${{ matrix.sofa_branch }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, macos-13, windows-2022]
sofa_branch: [master]
steps:
- name: Setup SOFA and environment
id: sofa
uses: sofa-framework/sofa-setup-action@v5
with:
sofa_root: ${{ github.workspace }}/sofa
sofa_version: ${{ matrix.sofa_branch }}
sofa_scope: 'standard'
sofa_with_sofapython3: 'true'
- name: Checkout source code
uses: actions/checkout@v2
with:
path: ${{ env.WORKSPACE_SRC_PATH }}
- name: Build and install
shell: bash
run: |
cmake_options="-GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="$WORKSPACE_INSTALL_PATH" \
-DCMAKE_PREFIX_PATH="$SOFA_ROOT/lib/cmake" \
"
if [ -e "$(command -v ccache)" ]; then
cmake_options="$cmake_options -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache"
fi
cmake_options="$(echo $cmake_options)" # prettify
if [[ "$RUNNER_OS" == "Windows" ]]; then
cmd //c "${{ steps.sofa.outputs.vs_vsdevcmd }} \
&& cd /d $WORKSPACE_BUILD_PATH \
&& cmake $cmake_options ../src \
&& ninja install"
else
cd "$WORKSPACE_BUILD_PATH"
ccache -z
cmake $cmake_options ../src
ninja install
echo ${CCACHE_BASEDIR}
ccache -s
fi
- name: Create artifact
uses: actions/[email protected]
with:
name: SofaViscoElastic_${{ steps.sofa.outputs.run_branch }}_for-SOFA-${{ steps.sofa.outputs.sofa_version }}_${{ runner.os }}
path: ${{ env.WORKSPACE_INSTALL_PATH }}
- name: Install artifact
uses: actions/download-artifact@v2
with:
name: SofaViscoElastic_${{ steps.sofa.outputs.run_branch }}_for-SOFA-${{ steps.sofa.outputs.sofa_version }}_${{ runner.os }}
path: ${{ env.WORKSPACE_ARTIFACT_PATH }}
#- name: Set env vars for tests
#shell: bash
#run: |
## Set env vars for tests
#if [[ "$RUNNER_OS" == "Windows" ]]; then
#echo "$(cd $WORKSPACE_ARTIFACT_PATH/lib && pwd -W)" >> $GITHUB_PATH
#echo "$(cd $WORKSPACE_ARTIFACT_PATH/bin && pwd -W)" >> $GITHUB_PATH
#elif [[ "$RUNNER_OS" == "macOS" ]]; then
#echo "DYLD_LIBRARY_PATH=$WORKSPACE_ARTIFACT_PATH/lib:$SOFA_ROOT/lib:$DYLD_LIBRARY_PATH" | tee -a $GITHUB_ENV
#fi
#echo "LD_LIBRARY_PATH=$WORKSPACE_ARTIFACT_PATH/lib:$SOFA_ROOT/lib:$LD_LIBRARY_PATH" | tee -a $GITHUB_ENV
## Add execution right on the tests
#chmod +x $WORKSPACE_BUILD_PATH/bin/*_test${{ steps.sofa.outputs.exe }}
#- name: Check environment for tests
#shell: bash
#run: |
#echo '------ ls -la "$WORKSPACE_SRC_PATH" ------'
#ls -la "$WORKSPACE_SRC_PATH"
#echo '------ ls -la "$WORKSPACE_BUILD_PATH" ------'
#ls -la "$WORKSPACE_BUILD_PATH"
#echo '------ ls -la "$WORKSPACE_INSTALL_PATH" ------'
#ls -la "$WORKSPACE_INSTALL_PATH"
#echo '------ ls -la "$WORKSPACE_ARTIFACT_PATH" ------'
#ls -la "$WORKSPACE_ARTIFACT_PATH"
#echo '----------------------'
#echo "SOFA_ROOT = $SOFA_ROOT"=
#echo '----------------------'
#python -c "import sys; print('sys.version = ' + str(sys.version)); print('sys.path = ' + str(sys.path))"
#- name: Run tests
#if: always()
#shell: bash
#run: |
#cd $WORKSPACE_BUILD_PATH
#./bin/SofaViscoElastic_test${{ steps.sofa.outputs.exe }}
deploy:
name: Deploy artifacts
if: always() && startsWith(github.repository, 'SofaDefrost') && (startsWith(github.ref, 'refs/heads/') || startsWith(github.ref, 'refs/tags/')) # we are not on a fork and on a branch or a tag (not a PR) needs: [build-and-test]
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Get artifacts
uses: actions/download-artifact@v2
with:
path: artifacts
- name: Zip artifacts
shell: bash
run: |
cd $GITHUB_WORKSPACE/artifacts
for artifact in *; do
zip $artifact.zip -r $artifact/*
done
- name: Upload release
uses: softprops/action-gh-release@v1
with:
name: ${{ github.ref_name }}
tag_name: release-${{ github.ref_name }}
fail_on_unmatched_files: false
target_commitish: ${{ github.sha }}
files: |
artifacts/SofaViscoElastic_*_Linux.zip
artifacts/SofaViscoElastic_*_Windows.zip
artifacts/SofaViscoElastic_*_macOS.zip