Skip to content

Change data field widget so that it is read-only if there is a parent. #64

Change data field widget so that it is read-only if there is a parent.

Change data field widget so that it is read-only if there is a parent. #64

Workflow file for this run

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 }}
continue-on-error: false
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04]
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: 'minimal'
- name: Checkout source code
uses: actions/checkout@v2
with:
path: ${{ env.WORKSPACE_SRC_PATH }}
- name: Install deps
shell: bash
run: |
if [[ "$RUNNER_OS" == "Linux" ]]; then
sudo apt-get update
sudo apt-get -qq install libqt5opengl5-dev
fi
- name: Build and install
id: build-and-install
shell: bash
run: |
if [[ "$RUNNER_OS" == "Windows" ]]; then
cmd //c "${{ steps.sofa.outputs.vs_vsdevcmd }} \
&& cd /d $WORKSPACE_BUILD_PATH \
&& cmake \
-GNinja \
-DCMAKE_PREFIX_PATH="$SOFA_ROOT/lib/cmake" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="$WORKSPACE_INSTALL_PATH" \
-DAPPLICATION_RUNSOFAGLFW=ON \
-DPLUGIN_SOFAGLFW=ON \
../src \
&& ninja -v install"
else
cd "$WORKSPACE_BUILD_PATH"
ccache -z
cmake \
-GNinja \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_PREFIX_PATH=$SOFA_ROOT/lib/cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="$WORKSPACE_INSTALL_PATH" \
-DPLUGIN_SOFA_QT=ON \
../src
ninja -v install
echo ${CCACHE_BASEDIR}
ccache -s
fi
- name: Sanitize artifact name
id: sanitize
# This step removes special characters from the artifact name to ensure compatibility with upload-artifact
# Characters removed: " : < > | * ? \r \n \ /
# Spaces are replaced with underscores
# This sanitization prevents errors in artifact creation and retrieval
shell: pwsh
run: |
$originalName = "Sofa.Qt_${{ steps.sofa.outputs.run_branch }}_for-SOFA-${{ steps.sofa.outputs.sofa_version }}_${{ runner.os }}"
$artifact_name = $originalName -replace '[":;<>|*?\r\n\\/]', '' -replace ' ', '_'
echo "artifact_name=$artifact_name" >> $env:GITHUB_OUTPUT
- name: Create artifact
id: create-artifact
uses: actions/upload-artifact@v4.4.0
with:
name: ${{ steps.sanitize.outputs.artifact_name }}
path: ${{ env.WORKSPACE_INSTALL_PATH }}
- name: Install artifact
id: install-artifact
uses: actions/download-artifact@v4.1.7
with:
name: ${{ steps.sanitize.outputs.artifact_name }}
path: ${{ env.WORKSPACE_ARTIFACT_PATH }}
- name: Notify dashboard
if: always() && startsWith(github.repository, 'sofa-framework') && startsWith(github.ref, 'refs/heads/master') # we are not on a fork and on master
env:
DASH_AUTH: ${{ secrets.PLUGIN_DASH }}
shell: bash
run: |
build_status=$([ '${{ steps.build-and-install.outcome }}' == 'success' ] && \
echo 'true' || echo 'false')
binary_status=$([ '${{ steps.create-artifact.outcome }}' == 'success' ] && \
[ '${{ steps.install-artifact.outcome }}' == 'success' ] && \
[ '${{ steps.sanitize.outcome }}' == 'success' ] && \
echo 'true' || echo 'false')
os=$(echo "${{ matrix.os }}" | awk -F- '{ print $1 }')
curl -X POST -H "X-API-KEY: $DASH_AUTH" -H "Content-Type: application/json" -d \
"{\"id\":\"$(echo "${{ github.repository }}" | awk -F/ '{ print $2 }')\",\
\"github_ref\":\"${{ github.sha }}\",\
\"url\":\"https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}\",\
\"os\":\"$os\",\
\"build\":$build_status,\
\"binary\":$binary_status}"\
https://sofa-framework.org:5000/api/v1/plugins