-
Notifications
You must be signed in to change notification settings - Fork 0
[DEMO — do not merge] Green fprime-examples integration tests (full stack) #198
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: devel
Are you sure you want to change the base?
Changes from all commits
cbbeb55
543990c
fc6fa39
5372062
58c9381
88c9bff
6784bc9
f1cae22
6ae17e8
2c1a5fb
f384a28
1274db2
d423f0c
1c65aee
db50046
c438e32
a004d68
4a57e95
37eacac
bac2c93
d695ad2
0140228
4a3fd69
0b48918
df19f20
4877373
af60f16
3125644
a53a8c9
5d87700
db3044f
54dfffb
7027d29
199f2b6
f520ffb
a761f3f
f297d7e
9accf9b
7f98154
eb9193d
30c80fd
7a12b72
c71d2a0
a8be073
2419bf3
d82d987
af3a9bf
6cb62f0
3ba43d5
4269ec0
06dcae3
c9169cd
421db16
f6d9454
5c8c58f
51764d7
9a4d173
0c5015d
c755df0
b995bff
d0d0a29
86208dc
64b3706
d549f1e
203cc68
897bdbc
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -19,6 +19,41 @@ on: | |
| required: false | ||
| type: boolean | ||
| default: true | ||
| run_integration_tests: | ||
| description: "Run an additional job to build the deployment and run integration tests against it." | ||
| required: false | ||
| type: boolean | ||
| default: false | ||
| integration_gds_working_directory: | ||
| description: "Directory to start fprime-gds from (relative to repo root). Required when run_integration_tests is true." | ||
| required: false | ||
| type: string | ||
| default: "" | ||
| integration_test_working_directory: | ||
| description: "Directory to run pytest from (relative to repo root). Required when run_integration_tests is true." | ||
| required: false | ||
| type: string | ||
| default: "" | ||
| integration_binary: | ||
| description: "Path to the FSW binary to run (relative to integration_gds_working_directory). Required when run_integration_tests is true." | ||
| required: false | ||
| type: string | ||
| default: "" | ||
| integration_binary_args: | ||
| description: "Arguments passed to the FSW binary." | ||
| required: false | ||
| type: string | ||
| default: "-a 127.0.0.1 -p 50000" | ||
| integration_gds_args: | ||
| description: "Extra arguments passed to fprime-gds (e.g. --dictionary path)." | ||
| required: false | ||
| type: string | ||
| default: "" | ||
| integration_pytest_args: | ||
| description: "Extra arguments passed to pytest (e.g. test paths, --dictionary path)." | ||
| required: false | ||
| type: string | ||
| default: "" | ||
|
Comment on lines
+22
to
+56
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔍 Integration test job definition appears missing from reusable workflow The reusable workflow at Was this helpful? React with 👍 or 👎 to provide feedback.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. False positive — the |
||
| fprime_location: | ||
| description: "Relative path from the external project root to its F´ submodule" | ||
| required: false | ||
|
|
@@ -139,3 +174,77 @@ jobs: | |
| fprime-util check -j8 ${VERBOSE_FLAG} ${TARGET_PLATFORM} --pass-through --output-on-failure | ||
| shell: bash | ||
|
|
||
| runIntegration: | ||
| if: ${{ inputs.run_integration_tests }} | ||
| runs-on: ${{ inputs.runs_on }} | ||
| name: "Integration Tests" | ||
| env: | ||
| FPRIME_LOCATION: ${{ inputs.fprime_location }} | ||
| TARGET_PLATFORM: ${{ inputs.target_platform }} | ||
| steps: | ||
| - name: "Checkout target repository" | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| submodules: recursive | ||
| repository: ${{ inputs.target_repository }} | ||
| ref: ${{ inputs.target_ref }} | ||
| - name: "Overlay current F´ revision" | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| submodules: true | ||
| path: ${{ inputs.fprime_location }} | ||
| # Install the target project's requirements so its GDS plugins (e.g. custom framing) | ||
| # are available to fprime-gds; fall back to the F´ submodule requirements otherwise. | ||
| - name: "Install requirements.txt" | ||
| run: | | ||
| # Modern build tooling is required so local source packages (e.g. the | ||
| # project's GDS plugins) build with correct metadata; the runner's | ||
| # system pip/setuptools can otherwise produce a broken "UNKNOWN" wheel | ||
| # with no entry points, which silently drops custom framing plugins. | ||
| pip3 install --upgrade pip setuptools wheel | ||
| if [ -f "${{ inputs.build_location }}/requirements.txt" ]; then | ||
| (cd "${{ inputs.build_location }}" && pip3 install -r requirements.txt) | ||
| else | ||
| pip3 install -r ${FPRIME_LOCATION}/requirements.txt | ||
| fi | ||
| shell: bash | ||
| # Match the F´ Ref integration tests: run against the in-development GDS | ||
| # (this PR's branch or devel) so GDS regressions are caught here too. | ||
| - name: "Upgrade fprime-gds to devel or pr-xxxx" | ||
| uses: nasa/fprime-actions/upgrade-package@devel | ||
| with: | ||
| repository: nasa/fprime-gds | ||
| - name: "Generate build cache" | ||
| working-directory: ${{ inputs.build_location }} | ||
| run: | | ||
| if [ "${RUNNER_DEBUG:-0}" = "1" ]; then | ||
| VERBOSE_FLAG=--verbose | ||
| else | ||
| VERBOSE_FLAG= | ||
| fi | ||
| fprime-util generate ${VERBOSE_FLAG} ${TARGET_PLATFORM} | ||
| shell: bash | ||
| - name: "Build" | ||
| working-directory: ${{ inputs.build_location }} | ||
| run: | | ||
| if [ "${RUNNER_DEBUG:-0}" = "1" ]; then | ||
| VERBOSE_FLAG=--verbose | ||
| else | ||
| VERBOSE_FLAG= | ||
| fi | ||
| fprime-util build -j8 ${VERBOSE_FLAG} ${TARGET_PLATFORM} | ||
| shell: bash | ||
| - name: "Make FSW binary executable" | ||
| working-directory: ${{ inputs.integration_gds_working_directory }} | ||
| run: chmod +x ${{ inputs.integration_binary }} | ||
| shell: bash | ||
| - name: "Integration Tests" | ||
| uses: nasa/fprime-actions/run-integration-tests@devel | ||
| with: | ||
| gds-working-directory: ${{ inputs.integration_gds_working_directory }} | ||
| test-working-directory: ${{ inputs.integration_test_working_directory }} | ||
| binary: ${{ inputs.integration_binary }} | ||
| binary-args: ${{ inputs.integration_binary_args }} | ||
| gds-args: ${{ inputs.integration_gds_args }} | ||
| pytest-args: ${{ inputs.integration_pytest_args }} | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔍 CI workflow hardcoded to fork branch — must be reverted before upstream merge
The examples workflow at
.github/workflows/ext-build-examples-repo.yml:38-51is hardcoded to point atJPL-Devin/fprime-exampleswith branchdevin/1783371774-dp-compression-exampleinstead of the standardnasa/fprime-exampleswith the dynamic branch fromget-branch. The comments at lines 38-41 explicitly acknowledge this is a temporary override for demo purposes. This must be reverted before merging upstream, as it would cause CI to permanently depend on a fork branch that may be deleted.Was this helpful? React with 👍 or 👎 to provide feedback.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct and intentional — this is the throwaway demo branch, and the fork-branch override is deliberate (see the comment right above it) so the not-yet-upstream
DataProduct/test/inttest is present. The real CI PR (#197) keepstarget_repository: nasa/fprime-examples+needs.get-branch.outputs.target-branch. This demo branch is marked do-not-merge.