Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
3a1c167
Test action
bakpaul Sep 9, 2024
978ef1a
Fix action
bakpaul Sep 9, 2024
0c2f7f0
Test pre job hook
bakpaul Sep 9, 2024
1a874b1
Add setup_build step
bakpaul Sep 9, 2024
033bd3c
Fix action
bakpaul Sep 9, 2024
c5fda97
FIX when folders already exist + TODOS
bakpaul Sep 10, 2024
14d7d2a
Add filter action and scripts
hugtalbot Mar 10, 2025
9725eb2
replace sofa-framework by bakpaul
hugtalbot Mar 13, 2025
c0c5975
fix indentation
hugtalbot Mar 13, 2025
1fade70
add checkout code action
hugtalbot Mar 13, 2025
a521a1a
Add backbone
bakpaul Mar 18, 2025
6331407
Cloning SOFA working
bakpaul Mar 18, 2025
896e09c
Forgot to save
bakpaul Mar 18, 2025
7c2d16a
add chmod to run script
hugtalbot Mar 18, 2025
c2db438
Add call-workflow, refactor env variables, update python script
hugtalbot Mar 18, 2025
a40fb35
remove useless comment
hugtalbot Mar 18, 2025
9a68617
Apply suggestions from code review
hugtalbot Mar 19, 2025
08cf72e
Apply suggestions from code review
hugtalbot Mar 19, 2025
a901365
Update filter-build.yml
hugtalbot Mar 19, 2025
3ff4ae3
Finalize clone sofa and ci (#7)
bakpaul Mar 19, 2025
22aa451
Add build step (#8)
bakpaul Mar 21, 2025
8831138
Use step outputs to send variables in call workflow (#9)
hugtalbot Apr 7, 2025
949946a
Update checkPRInfoBeforeBuild.py (#11)
hugtalbot Apr 7, 2025
0ce7781
Fix build script (#13)
bakpaul Apr 8, 2025
93b612b
fix script + revert wrong changes (#15)
bakpaul Apr 8, 2025
3fab0e2
Update filter-build.yml (#16)
hugtalbot Apr 8, 2025
43dcd30
Fix sha when commit pushed in master (#17)
hugtalbot Apr 8, 2025
9fcf645
Temporarily change remote for non-PR (#18)
hugtalbot Apr 8, 2025
867f910
202505 evolve filter nightly (#19)
hugtalbot Apr 11, 2025
4c5ce49
Fix trigger through comments (#20)
hugtalbot Apr 11, 2025
bb10f39
move echo to read it
hugtalbot Apr 11, 2025
a32a3e5
attempt to access information PR comment
hugtalbot Apr 11, 2025
070f7ae
attempt to access information PR comment
hugtalbot Apr 11, 2025
7dba720
complete access information PR comment
hugtalbot Apr 11, 2025
8229d83
complete access information PR comment
hugtalbot Apr 11, 2025
37656b4
Update search of PR information when comment_issue
hugtalbot Apr 11, 2025
06b1e67
Remove empty env var
hugtalbot Apr 11, 2025
9bae225
add check on OWNER_NAME var
hugtalbot Apr 11, 2025
41dcada
add check on OWNER_NAME var
hugtalbot Apr 11, 2025
5675c33
last attempt to fill env var for comment_issue
hugtalbot Apr 11, 2025
67db07e
split in two steps for comment_issue
hugtalbot Apr 11, 2025
384f86c
add missing PR number for comment_issue (step 2)
hugtalbot Apr 11, 2025
7701642
Start work on docker use (#10)
bakpaul Apr 17, 2025
242503a
Filter build only if not schedule, PR comment linked steps (#21)
hugtalbot Apr 17, 2025
805ccd6
Fix when ci-depends-on is empty (#22)
bakpaul Apr 17, 2025
6232b5f
Manage out of tree plugins and simplify binaries generation (#23)
bakpaul Apr 17, 2025
9499d7d
Fix filter build
bakpaul Apr 17, 2025
0a14604
Restore changes
bakpaul Apr 17, 2025
fd5e726
Remove unnecessary checks in workflow dispatch
bakpaul Apr 17, 2025
b5f457e
Fix builder os matrix
bakpaul Apr 17, 2025
daee071
Fix builder os matrix
bakpaul Apr 17, 2025
1deb209
Activate plugins that are added (#25)
bakpaul Apr 17, 2025
398970d
fix adding external repo
bakpaul Apr 22, 2025
93b5b93
Force full build on workflow dispatch
bakpaul Apr 22, 2025
27a49f2
Add missing inputs to filter build action (#26)
bakpaul Apr 28, 2025
5be4476
Add test step (#28)
bakpaul Apr 29, 2025
2118d07
Add log publishing (#31)
bakpaul Apr 29, 2025
0636656
Fix log publish
bakpaul Apr 30, 2025
c3cb6b0
Update build-and-test.yml
bakpaul Apr 30, 2025
21993a7
Squashed commit of the following:
bakpaul Sep 24, 2025
f84eaaf
Merge branch 'sofa-framework:master' into master
bakpaul Sep 24, 2025
4a3b7cf
Add action to reboot slaves (#36)
bakpaul Sep 26, 2025
0bd8ae0
Fix rteboot action name
bakpaul Sep 26, 2025
92b18e4
Fix reboot action
bakpaul Sep 26, 2025
ec563fa
FIX log naming strategy (#34)
bakpaul Oct 1, 2025
5076ab7
Add step checking build and test status (#30)
hugtalbot Oct 1, 2025
6db4935
Fix script
bakpaul Oct 1, 2025
9b53c93
Remove fail fast and fix reboot action
bakpaul Oct 1, 2025
23608bf
Fix fail-fast
bakpaul Oct 1, 2025
6aa42c0
Fix nightly reboot
bakpaul Oct 2, 2025
ce066e0
Try to activate nightly build
bakpaul Oct 8, 2025
c1018b5
Fix test
bakpaul Oct 8, 2025
592a783
Divide nightly from the rest
bakpaul Oct 8, 2025
68767ab
Merge branch 'sofa-framework:master' into master
bakpaul Oct 8, 2025
0b3d2bb
Merge branch 'sofa-framework:master' into master
bakpaul Oct 14, 2025
f818250
Add binaries publication
bakpaul Oct 14, 2025
a4d1ce8
Remove continue on fail for build + display more info on summary
bakpaul Oct 15, 2025
5e22fa4
Move ci scripts to CI and checkout CI instead of SOFA in trigger build
bakpaul Oct 15, 2025
e660219
Add new action that chacks ci-depends-on
bakpaul Oct 15, 2025
7d32a2a
Dump
bakpaul Oct 15, 2025
fb8c77a
Fix actions
bakpaul Oct 15, 2025
d0170e2
Fix ci-depends-on actions
bakpaul Oct 15, 2025
bfe39e4
Merge branch 'master' into dummy_pr
bakpaul Oct 20, 2025
99aca5e
Rermove ci depends on now it is dealt with by the trigger build and t…
bakpaul Oct 20, 2025
0d2b7a9
Merge branch 'master' into dummy_pr
bakpaul Oct 20, 2025
9386072
Change job name
bakpaul Oct 20, 2025
09f879c
Merge branch 'master' into dummy_pr
bakpaul Oct 20, 2025
be92807
Chaneg run name
bakpaul Oct 20, 2025
942d084
Merge branch 'master' into dummy_pr
bakpaul Oct 20, 2025
198da63
Fix build action
bakpaul Oct 20, 2025
3084246
Merge branch 'master' into dummy_pr
bakpaul Oct 20, 2025
eee439b
Change passing action name
bakpaul Oct 20, 2025
b10185f
Merge branch 'master' into dummy_pr
bakpaul Oct 20, 2025
7bef0cb
Fix summarize results step
bakpaul Oct 20, 2025
d3bfe34
Add comment
bakpaul Oct 20, 2025
ce8b5f3
Add better output for tests
bakpaul Oct 20, 2025
3759fec
Update condition for summary for tests
bakpaul Oct 20, 2025
a6c458d
Use env variable for docker hub token
bakpaul Oct 21, 2025
6f54807
Fix docker token
bakpaul Oct 21, 2025
a5b9bab
Try fix docker hub
bakpaul Oct 21, 2025
fdee5ca
Try again
bakpaul Oct 21, 2025
030f3ff
Merge branch 'master' into dummy_pr
bakpaul Oct 21, 2025
b566f84
Put back stdin method
bakpaul Oct 21, 2025
dff69c7
Merge branch 'master' into dummy_pr
bakpaul Oct 21, 2025
223fe77
fix subtition
bakpaul Oct 22, 2025
01d5de0
Publish also cmake output
bakpaul Oct 23, 2025
71ab7bd
Merge branch 'master' into dummy_pr
bakpaul Oct 23, 2025
0074918
Output cmake log outside of build dir to avoid breaking configuration
bakpaul Oct 23, 2025
eb33118
Deal better with the logs
bakpaul Oct 23, 2025
01437fc
Merge branch 'master' into dummy_pr
bakpaul Oct 23, 2025
c27906b
Use relative paths to be more generic
bakpaul Oct 23, 2025
2c5d595
complete relative paths
bakpaul Oct 23, 2025
dc62bd2
Merge branch 'master' into dummy_pr
bakpaul Oct 23, 2025
bfce75e
Remove commented triggers
bakpaul Oct 23, 2025
5e1da29
Merge branch 'master' into dummy_pr
bakpaul Oct 23, 2025
be10df5
Deactivate nightly for other branch than master and activate push eve…
bakpaul Oct 23, 2025
150ece3
Enable multiple builder on same host
bakpaul Oct 23, 2025
d30d868
Fix typo in error type
bakpaul Oct 24, 2025
18ea40c
Merge branch 'sofa-framework:master' into master
bakpaul Oct 24, 2025
6916701
Merge branch 'master' into dummy_pr
bakpaul Oct 24, 2025
e939d3f
Fix ci depends on
bakpaul Oct 27, 2025
a6d4108
Merge branch 'master' into dummy_pr
bakpaul Oct 27, 2025
fb2ac3f
put tests in three separated steps + clean docker call
bakpaul Oct 27, 2025
24f3468
Merge branch 'master' into dummy_pr
bakpaul Oct 27, 2025
6547db5
Refacto call to docker
bakpaul Oct 27, 2025
b517091
Fix typo"
bakpaul Oct 27, 2025
f86fe65
Merge branch 'master' into dummy_pr
bakpaul Oct 27, 2025
c40b66d
Always run all tests if build is ok and all tests is enable
bakpaul Oct 27, 2025
2a9f1b0
Merge branch 'master' into dummy_pr
bakpaul Oct 27, 2025
9763219
If mkdir returns 'folder already exists' then all good.
bakpaul Oct 28, 2025
e0b7967
Try fix
bakpaul Oct 28, 2025
b10174c
Update Sofa/framework/Helper/src/sofa/helper/system/FileSystem.cpp
bakpaul Oct 29, 2025
8c0c750
USe a common cache dir for all build (#44)
bakpaul Oct 29, 2025
c406e50
Merge branch 'master' into dummy_pr
bakpaul Oct 29, 2025
a2c6460
Increase ccache size before launching build
bakpaul Oct 30, 2025
d6947d2
Clear ccache when rebooting
bakpaul Oct 30, 2025
c8e0a69
Now if path already exists and is actually a folder then throw no error
bakpaul Oct 30, 2025
6c473a3
Merge branch 'master' into dummy_pr
bakpaul Oct 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
486 changes: 486 additions & 0 deletions .github/workflows/build-and-test.yml

Large diffs are not rendered by default.

122 changes: 122 additions & 0 deletions .github/workflows/nightly-build-and-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
name: Nightly build and tests

# ===============================================================
# ===============================================================


on:
# Nightly build
schedule:
- cron: '0 2 * * *' # Evevery night

# ===============================================================
# ===============================================================


jobs:
# Nightly build triggered once a day
nightly_build:
runs-on: ubuntu-latest
strategy:
matrix:
sofa_version: [master]
### if: ${{ github.repository_owner == 'sofa-framework' }}
outputs:
SOFA_BRANCH_NAME: ${{ steps.export-vars.outputs.SOFA_BRANCH_NAME }}
SOFA_COMMIT_SHA: ${{ steps.export-vars.outputs.SOFA_COMMIT_SHA }}
PRESET: ${{ steps.export-vars.outputs.PRESET }}
PYTHON_VERSION: ${{ steps.export-vars.outputs.PYTHON_VERSION }}
CI_DEPENDS_ON: ${{ steps.export-vars.outputs.CI_DEPENDS_ON }}
WITH_ALL_TESTS: ${{ steps.export-vars.outputs.WITH_ALL_TESTS }}
FORCE_FULL_BUILD: ${{ steps.export-vars.outputs.FORCE_FULL_BUILD }}
EXTERNAL_PLUGINS: ${{ steps.export-vars.outputs.EXTERNAL_PLUGINS }}
ADDITIONNAL_CMAKE_FLAGS: ${{ steps.export-vars.outputs.ADDITIONNAL_CMAKE_FLAGS }}
GENERATE_BINARIES: ${{ steps.export-vars.outputs.GENERATE_BINARIES }}
PR_OWNER_URL: ${{ steps.export-vars.outputs.PR_OWNER_URL }}
PR_BRANCH_NAME: ${{ steps.export-vars.outputs.PR_BRANCH_NAME }}
PR_COMMIT_SHA: ${{ steps.export-vars.outputs.PR_COMMIT_SHA }}
BUILDER_OS: ${{ steps.export-vars.outputs.BUILDER_OS }}

steps:
- name: Default values of environment variables
run: |
echo "SOFA_BRANCH_NAME=master" >> $GITHUB_ENV # SOFA_BRANCH_NAME: "master"
echo "SOFA_COMMIT_SHA=HEAD" >> $GITHUB_ENV # SOFA_COMMIT_SHA: "HEAD"
echo "PRESET=full" >> $GITHUB_ENV # PRESET: "full"
echo "PYTHON_VERSION=3.12" >> $GITHUB_ENV # PYTHON_VERSION: "3.12"
echo "CI_DEPENDS_ON=" >> $GITHUB_ENV # CI_DEPENDS_ON: ""
echo "WITH_ALL_TESTS=false" >> $GITHUB_ENV # WITH_ALL_TESTS: false
echo "FORCE_FULL_BUILD=false" >> $GITHUB_ENV # FORCE_FULL_BUILD: false
echo "EXTERNAL_PLUGINS=" >> $GITHUB_ENV # EXTERNAL_PLUGINS: ""
echo "ADDITIONNAL_CMAKE_FLAGS=" >> $GITHUB_ENV # ADDITIONNAL_CMAKE_FLAGS: ""
echo "GENERATE_BINARIES=false" >> $GITHUB_ENV # GENERATE_BINARIES: false
echo "PR_OWNER_URL=" >> $GITHUB_ENV # PR_OWNER_URL: ""
echo "PR_BRANCH_NAME=" >> $GITHUB_ENV # PR_BRANCH_NAME: ""
echo "PR_COMMIT_SHA=HEAD" >> $GITHUB_ENV # PR_COMMIT_SHA: "HEAD"
echo 'BUILDER_OS=["sh-ubuntu_gcc_release","sh-macos_clang_release"]' >> $GITHUB_ENV # BUILDER_OS: ["sh-ubuntu_gcc_release","sh-macos_clang_release"]

- name: Set up python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}

- name: Install pip packages
run: |
pip install python-graphql-client
pip install requests

- name: Check out code
uses: actions/checkout@v2

- name: Run when nightly
run: |
echo "This step runs only for nightly builds."
echo "SOFA_BRANCH_NAME=${{ matrix.sofa_version }}" >> $GITHUB_ENV
echo "PRESET=standard-dev" >> $GITHUB_ENV
echo "WITH_ALL_TESTS=true" >> $GITHUB_ENV
echo "GENERATE_BINARIES=true" >> $GITHUB_ENV
echo 'BUILDER_OS=["sh-ubuntu_gcc_release","sh-macos_clang_release"]' >> $GITHUB_ENV

- name: Export environment variables as outputs
id: export-vars
run: |
echo "SOFA_BRANCH_NAME=${SOFA_BRANCH_NAME}" >> $GITHUB_OUTPUT
echo "SOFA_COMMIT_SHA=${SOFA_COMMIT_SHA}" >> $GITHUB_OUTPUT
echo "PRESET=${PRESET}" >> $GITHUB_OUTPUT
echo "PYTHON_VERSION=${PYTHON_VERSION}" >> $GITHUB_OUTPUT
echo "CI_DEPENDS_ON=${CI_DEPENDS_ON}" >> $GITHUB_OUTPUT
echo "WITH_ALL_TESTS=${WITH_ALL_TESTS}" >> $GITHUB_OUTPUT
echo "FORCE_FULL_BUILD=${FORCE_FULL_BUILD}" >> $GITHUB_OUTPUT
echo "EXTERNAL_PLUGINS=${EXTERNAL_PLUGINS}" >> $GITHUB_OUTPUT
echo "ADDITIONNAL_CMAKE_FLAGS=${ADDITIONNAL_CMAKE_FLAGS}" >> $GITHUB_OUTPUT
echo "GENERATE_BINARIES=${GENERATE_BINARIES}" >> $GITHUB_OUTPUT
echo "PR_OWNER_URL=${PR_OWNER_URL}" >> $GITHUB_OUTPUT
echo "PR_BRANCH_NAME=${PR_BRANCH_NAME}" >> $GITHUB_OUTPUT
echo "PR_COMMIT_SHA=${PR_COMMIT_SHA}" >> $GITHUB_OUTPUT
echo "BUILDER_OS=${BUILDER_OS}" >> $GITHUB_OUTPUT




# ===============================================================
# ===============================================================

# Trigger the build and sharing all parameters from nightly_build > outputs
build-on:
needs: nightly_build
uses: bakpaul/sofa/.github/workflows/build-and-test.yml@master
with:
sofa-branch-name: ${{ needs.nightly_build.outputs.SOFA_BRANCH_NAME }}
sofa-commit-sha: ${{ needs.nightly_build.outputs.SOFA_COMMIT_SHA }}
preset: ${{ needs.nightly_build.outputs.PRESET }}
python-version: ${{ needs.nightly_build.outputs.PYTHON_VERSION }}
ci-depends-on: ${{ needs.nightly_build.outputs.CI_DEPENDS_ON }}
with-all-tests: ${{ needs.nightly_build.outputs.WITH_ALL_TESTS == 'true'}}
force-full-build: ${{ needs.nightly_build.outputs.FORCE_FULL_BUILD == 'true'}}
external-plugins: ${{ needs.nightly_build.outputs.EXTERNAL_PLUGINS }}
additionnal-cmake-flags: ${{ needs.nightly_build.outputs.ADDITIONNAL_CMAKE_FLAGS }}
generate-binaries: ${{ needs.nightly_build.outputs.GENERATE_BINARIES == 'true'}}
pr-owner-url: ${{ needs.nightly_build.outputs.PR_OWNER_URL }}
pr-branch-name: ${{ needs.nightly_build.outputs.PR_BRANCH_NAME }}
pr-commit-sha: ${{ needs.nightly_build.outputs.PR_COMMIT_SHA }}
builder-os: ${{ needs.nightly_build.outputs.BUILDER_OS }}
81 changes: 81 additions & 0 deletions .github/workflows/reboot_builders.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: Reboot builders

# ===============================================================
# ===============================================================


on:
# On-demand binary generation
workflow_dispatch:
inputs:
builder-os:
type: choice
description: On which OS run the binaries generation
options:
- '["sofa-ci-dev-ubuntu2204-0"]'
- '["sofa-ci-dev-ubuntu2204-1"]'
- '["sofa-ci-dev-ubuntu2204-2"]'
- '["sofa-ci-dev-ubuntu2204-3"]'
- '["sofa-ci-dev-ubuntu2204-4"]'
- '["consortium-macos-2"]'
- '["consortium-macos-3"]'
- '["sofa-ci-dev-ubuntu2204-0","sofa-ci-dev-ubuntu2204-1","sofa-ci-dev-ubuntu2204-2","sofa-ci-dev-ubuntu2204-3","sofa-ci-dev-ubuntu2204-4","consortium-macos-2","consortium-macos-3"]'
default: '["sofa-ci-dev-ubuntu2204-0","sofa-ci-dev-ubuntu2204-1","sofa-ci-dev-ubuntu2204-2","sofa-ci-dev-ubuntu2204-3","sofa-ci-dev-ubuntu2204-4","consortium-macos-2","consortium-macos-3"]'



# Nightly build
schedule:
- cron: '30 1 * * *' # Evevery night @1:30 a.m.

# ===============================================================
# ===============================================================


jobs:
# Filter build handling : push in master, commits in PR, comments in PR and dispatch
reboot_builders_by_hand:
if: ${{ github.event_name != 'schedule'}}
strategy:
fail-fast: false
matrix:
os: ${{ fromJson(inputs.builder-os) }}
runs-on: ${{ matrix.os }}
steps:
- name: Clear ccache
if: ${{ runner.os == 'Linux' }}
shell: bash
run: |
if [[ -n "$BUILDER_CACHE_DIR" ]]; then
rm -rf $BUILDER_CACHE_DIR/*
fi

- name: Reboot builder
shell: bash
run: |
# WARNING: this command needs to add in /etc/sudoers this line:
# ALL ALL=NOPASSWD: /usr/sbin/reboot, /usr/sbin/shutdown, /sbin/reboot, /sbin/shutdown
echo '' | sudo -S /sbin/shutdown -r +1 &

rebot_builder_nightly:
if: ${{ github.event_name == 'schedule'}}
strategy:
fail-fast: false
matrix:
os: ["sofa-ci-dev-ubuntu2204-0","sofa-ci-dev-ubuntu2204-1","sofa-ci-dev-ubuntu2204-2","sofa-ci-dev-ubuntu2204-3","sofa-ci-dev-ubuntu2204-4","consortium-macos-2","consortium-macos-3"]
runs-on: ${{ matrix.os }}
steps:
- name: Clear ccache
if: ${{ runner.os == 'Linux' }}
shell: bash
run: |
if [[ -n "$BUILDER_CACHE_DIR" ]]; then
rm -rf $BUILDER_CACHE_DIR/*
fi

- name: Reboot builder
shell: bash
run: |
# WARNING: this command needs to add in /etc/sudoers this line:
# ALL ALL=NOPASSWD: /usr/sbin/reboot, /usr/sbin/shutdown, /sbin/reboot, /sbin/shutdown
echo '' | sudo -S /sbin/shutdown -r +1 &
Loading
Loading