diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f34964d..089836b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,6 +41,7 @@ jobs: path: ${{ env.WORKSPACE_SRC_PATH }} - name: Build and install + id: build-and-install shell: bash run: | if [[ "$RUNNER_OS" == "Windows" ]]; then @@ -82,12 +83,14 @@ jobs: 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 }} @@ -120,12 +123,40 @@ jobs: ls -la "$WORKSPACE_ARTIFACT_PATH" - name: Run test PluginExample_test + id: unit-tests if: always() shell: bash run: | cd $WORKSPACE_BUILD_PATH ./PluginExample_test/PluginExample_test${{ steps.sofa.outputs.exe }} + - 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: | + test_status=$([ '${{ steps.unit-tests.outcome }}' == 'success' ] && \ + echo 'true' || echo 'false') + + 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') + + + 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 }}\",\ + \"build\":\"$build_status\",\ + \"tests\":\"$test_status\",\ + \"binary\":\"$binary_status\"}"\ + https://sofa-framework.org:5000/api/v1/plugins + deploy: name: Deploy artifacts if: always() && startsWith(github.ref, 'refs/heads/') # we are on a branch (not a PR)