Skip to content

Commit 33070ab

Browse files
Merge pull request #250 from guparan/robosoft2022_integration
RoboSoft2022 changes
2 parents 9602fbc + 8db986b commit 33070ab

1 file changed

Lines changed: 61 additions & 103 deletions

File tree

.github/workflows/ci.yml

Lines changed: 61 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -13,98 +13,30 @@ on:
1313

1414
jobs:
1515
build-and-test:
16-
name: Run on ${{ matrix.os }} with SOFA ${{ matrix.sofa_branch }}
16+
name: Run on ${{ matrix.os }} with SOFA ${{ matrix.sofa_branch }} and python ${{ matrix.python_version }}
1717
runs-on: ${{ matrix.os }}
1818
strategy:
1919
fail-fast: false
2020
matrix:
2121
os: [ubuntu-20.04, macos-10.15, windows-2019]
2222
sofa_branch: [master]
23+
python_version: ['3.9']
2324

2425
steps:
2526
- name: Setup SOFA and environment
2627
id: sofa
27-
uses: sofa-framework/sofa-setup-action@v3
28+
uses: sofa-framework/sofa-setup-action@v4
2829
with:
2930
sofa_root: ${{ github.workspace }}/sofa
3031
sofa_version: ${{ matrix.sofa_branch }}
31-
sofa_scope: 'minimal'
32+
sofa_scope: 'standard'
33+
sofa_with_sofapython3: 'false'
34+
python_version: '${{ matrix.python_version }}'
3235

3336
- name: Checkout source code
3437
uses: actions/checkout@v2
3538
with:
3639
path: ${{ env.WORKSPACE_SRC_PATH }}
37-
38-
- name: Set env vars for artifacts naming
39-
shell: bash
40-
run: |
41-
PROJECT_NAME="${GITHUB_REPOSITORY#*/}"
42-
echo "PROJECT_NAME=$PROJECT_NAME" | tee -a $GITHUB_ENV
43-
44-
ARTIFACT_VERSION="${{ steps.sofa.outputs.run_branch }}"
45-
if [[ "${{ github.event.inputs.is_nightly }}" == "true" ]]; then
46-
ARTIFACT_VERSION="${ARTIFACT_VERSION}-nightly"
47-
fi
48-
ARTIFACT_NAME="${PROJECT_NAME}_${ARTIFACT_VERSION}_for-SOFA-${{ steps.sofa.outputs.sofa_version }}_${{ runner.os }}"
49-
echo "ARTIFACT_NAME=$ARTIFACT_NAME" | tee -a $GITHUB_ENV
50-
51-
- name: Set env vars for pybind11 installation
52-
shell: bash
53-
run: |
54-
# Define pybind11 specs
55-
PYBIND11_VERSION=2.4.3
56-
PYBIND11_INSTALL_PATH="/tmp/deps_cache_is_for_windows_only"
57-
if [[ "$RUNNER_OS" == "Windows" ]]; then
58-
PYBIND11_INSTALL_PATH="C:/pybind11"
59-
fi
60-
echo "PYBIND11_VERSION=$PYBIND11_VERSION" | tee -a $GITHUB_ENV
61-
echo "PYBIND11_INSTALL_PATH=$PYBIND11_INSTALL_PATH" | tee -a $GITHUB_ENV
62-
63-
- name: Setup cache for pybind11 files
64-
uses: actions/cache@v2
65-
id: pybind11_cache
66-
with:
67-
path: ${{ env.PYBIND11_INSTALL_PATH }}
68-
key: pybind11-${{ env.PYBIND11_VERSION }}_${{ runner.os }}_python-${{ steps.sofa.outputs.python_version }}_${{ hashFiles('src/.github/workflows/*.yml') }}
69-
70-
- name: Install pybind11
71-
shell: bash
72-
run: |
73-
# Build and install pybind11
74-
if [[ "$RUNNER_OS" == "Windows" ]]; then
75-
if ! ls -a "$PYBIND11_INSTALL_PATH"/* >/dev/null 2>&1; then
76-
# directory does not exist or is empty
77-
git clone -b v$PYBIND11_VERSION --depth 1 https://github.com/pybind/pybind11.git "${{ runner.temp }}/pybind11_tmp"
78-
cmd //c "${{ steps.sofa.outputs.vs_vsdevcmd }} && \
79-
cd /d ${{ runner.temp }}/pybind11_tmp && \
80-
cmake \
81-
-GNinja \
82-
-DCMAKE_BUILD_TYPE=Release \
83-
-DPYBIND11_TEST=OFF \
84-
-DCMAKE_INSTALL_PREFIX=$PYBIND11_INSTALL_PATH \
85-
-DPYTHON_ROOT=$PYTHON_ROOT \
86-
-DPython_ROOT=$PYTHON_ROOT \
87-
-DPYTHON_EXECUTABLE=$PYTHON_ROOT/python.exe \
88-
-DPython_EXECUTABLE=$PYTHON_ROOT/python.exe \
89-
. && \
90-
ninja install"
91-
fi
92-
echo "pybind11_ROOT=$PYBIND11_INSTALL_PATH" | tee -a $GITHUB_ENV
93-
echo "$PYBIND11_INSTALL_PATH" >> $GITHUB_PATH
94-
else
95-
git clone -b v${PYBIND11_VERSION} --depth 1 https://github.com/pybind/pybind11.git "${{ runner.temp }}/pybind11_tmp"
96-
cd "${{ runner.temp }}/pybind11_tmp"
97-
cmake \
98-
-GNinja \
99-
-DCMAKE_BUILD_TYPE=Release \
100-
-DPYBIND11_TEST=OFF \
101-
-DPYTHON_ROOT=$PYTHON_ROOT \
102-
-DPython_ROOT=$PYTHON_ROOT \
103-
-DPYTHON_EXECUTABLE=$PYTHON_ROOT/python \
104-
-DPython_EXECUTABLE=$PYTHON_ROOT/python \
105-
.
106-
sudo ninja install
107-
fi
10840

10941
- name: Setup cache for ccache files
11042
if: ${{ runner.os != 'Windows' }}
@@ -116,39 +48,43 @@ jobs:
11648
- name: Build and install
11749
shell: bash
11850
run: |
51+
cmake_options="-GNinja \
52+
-DCMAKE_BUILD_TYPE=Release \
53+
-DCMAKE_INSTALL_PREFIX="$WORKSPACE_INSTALL_PATH" \
54+
-DCMAKE_PREFIX_PATH="$SOFA_ROOT/lib/cmake" \
55+
-DPYTHON_ROOT=$PYTHON_ROOT -DPython_ROOT=$PYTHON_ROOT \
56+
-DPYTHON_EXECUTABLE=$PYTHON_EXE -DPython_EXECUTABLE=$PYTHON_EXE"
57+
if [ -e "$(command -v ccache)" ]; then
58+
cmake_options="$cmake_options -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache"
59+
fi
60+
cmake_options="$(echo $cmake_options)" # prettify
61+
11962
if [[ "$RUNNER_OS" == "Windows" ]]; then
12063
cmd //c "${{ steps.sofa.outputs.vs_vsdevcmd }} \
12164
&& cd /d $WORKSPACE_BUILD_PATH \
122-
&& cmake \
123-
-GNinja \
124-
-DCMAKE_PREFIX_PATH="$SOFA_ROOT/lib/cmake" \
125-
-DCMAKE_BUILD_TYPE=Release \
126-
-DCMAKE_INSTALL_PREFIX="$WORKSPACE_INSTALL_PATH" \
127-
-DPYTHON_ROOT=$PYTHON_ROOT \
128-
-DPython_ROOT=$PYTHON_ROOT \
129-
-DPYTHON_EXECUTABLE=$PYTHON_ROOT/python.exe \
130-
-DPython_EXECUTABLE=$PYTHON_ROOT/python.exe \
131-
../src \
65+
&& cmake $cmake_options ../src \
13266
&& ninja install"
13367
else
13468
cd "$WORKSPACE_BUILD_PATH"
13569
ccache -z
136-
cmake \
137-
-GNinja \
138-
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
139-
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
140-
-DCMAKE_PREFIX_PATH=$SOFA_ROOT/lib/cmake \
141-
-DCMAKE_BUILD_TYPE=Release \
142-
-DCMAKE_INSTALL_PREFIX="$WORKSPACE_INSTALL_PATH" \
143-
-DPYTHON_ROOT=$PYTHON_ROOT \
144-
-DPython_ROOT=$PYTHON_ROOT \
145-
-DPYTHON_EXECUTABLE=$PYTHON_ROOT/python \
146-
-DPython_EXECUTABLE=$PYTHON_ROOT/python \
147-
../src
70+
cmake $cmake_options ../src
14871
ninja install
14972
echo ${CCACHE_BASEDIR}
15073
ccache -s
15174
fi
75+
76+
- name: Set env vars for artifacts
77+
shell: bash
78+
run: |
79+
PROJECT_NAME="${GITHUB_REPOSITORY#*/}"
80+
echo "PROJECT_NAME=$PROJECT_NAME" | tee -a $GITHUB_ENV
81+
82+
ARTIFACT_VERSION="${{ steps.sofa.outputs.run_branch }}"
83+
if [[ "${{ github.event.inputs.is_nightly }}" == "true" ]]; then
84+
ARTIFACT_VERSION="${ARTIFACT_VERSION}-nightly"
85+
fi
86+
ARTIFACT_NAME="${PROJECT_NAME}_${ARTIFACT_VERSION}_python-${{ matrix.python_version }}_for-SOFA-${{ matrix.sofa_branch }}_${{ runner.os }}"
87+
echo "ARTIFACT_NAME=$ARTIFACT_NAME" | tee -a $GITHUB_ENV
15288
15389
- name: Create artifact
15490
uses: actions/upload-artifact@v2
@@ -167,8 +103,8 @@ jobs:
167103
run: |
168104
# Set env vars for tests
169105
if [[ "$RUNNER_OS" == "Windows" ]]; then
170-
echo "$(cd $WORKSPACE_ARTIFACT_PATH/lib && pwd -W)" >> $GITHUB_PATH
171-
echo "$(cd $WORKSPACE_ARTIFACT_PATH/bin && pwd -W)" >> $GITHUB_PATH
106+
echo "$WORKSPACE_ARTIFACT_PATH/lib" >> $GITHUB_PATH
107+
echo "$WORKSPACE_ARTIFACT_PATH/bin" >> $GITHUB_PATH
172108
elif [[ "$RUNNER_OS" == "macOS" ]]; then
173109
echo "DYLD_LIBRARY_PATH=$WORKSPACE_ARTIFACT_PATH/lib:$SOFA_ROOT/lib:$DYLD_LIBRARY_PATH" | tee -a $GITHUB_ENV
174110
fi
@@ -192,7 +128,8 @@ jobs:
192128
echo "SOFA_ROOT = $SOFA_ROOT"
193129
echo "PYTHONPATH = $PYTHONPATH"
194130
echo '----------------------'
195-
echo "which python = $(which python)"
131+
echo "PATH = $PATH"
132+
echo '----------------------'
196133
python -c "import sys; print('sys.version = ' + str(sys.version)); print('sys.path = ' + str(sys.path))"
197134
198135
- name: Run test Binding.Sofa.Tests
@@ -244,15 +181,36 @@ jobs:
244181
done
245182
PROJECT_NAME="${GITHUB_REPOSITORY#*/}"
246183
echo "PROJECT_NAME=$PROJECT_NAME" | tee -a $GITHUB_ENV
184+
185+
RELEASE_NAME="${{ github.ref_name }}"
186+
RELEASE_TAGNAME="release-${{ github.ref_name }}"
187+
if [[ "${{ github.event.inputs.is_nightly }}" == "true" ]]; then
188+
RELEASE_NAME="$RELEASE_NAME-nightly"
189+
RELEASE_TAGNAME="$RELEASE_TAGNAME-nightly"
190+
fi
191+
RELEASE_DATE="$(date +'%Y-%m-%d (at %T UTC)')"
192+
echo "RELEASE_NAME=$RELEASE_NAME" | tee -a $GITHUB_ENV
193+
echo "RELEASE_TAGNAME=$RELEASE_TAGNAME" | tee -a $GITHUB_ENV
194+
echo "RELEASE_DATE=$RELEASE_DATE" | tee -a $GITHUB_ENV
195+
196+
- name: Delete old release
197+
uses: dev-drprasad/delete-tag-and-release@v0.2.0
198+
with:
199+
tag_name: ${{ env.RELEASE_TAGNAME }}
200+
delete_release: true
201+
env:
202+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
247203

248-
- name: Upload release
204+
- name: Create new release
205+
if: success() || failure()
249206
uses: softprops/action-gh-release@v1
250207
with:
251-
name: ${{ github.ref_name }}
252-
tag_name: release-${{ github.ref_name }}
208+
name: ${{ env.RELEASE_NAME }}
209+
tag_name: ${{ env.RELEASE_TAGNAME }}
253210
fail_on_unmatched_files: true
211+
body: |
212+
Last updated on ${{ env.RELEASE_DATE }}
254213
files: |
255214
artifacts/${{ env.PROJECT_NAME }}_*_Linux.zip
256215
artifacts/${{ env.PROJECT_NAME }}_*_Windows.zip
257216
artifacts/${{ env.PROJECT_NAME }}_*_macOS.zip
258-

0 commit comments

Comments
 (0)