-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add abstraction for creating apps in flake
- Loading branch information
Showing
4 changed files
with
143 additions
and
73 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
name: Bootstrap and test new nain4 client project | ||
on: | ||
pull_request: | ||
push: | ||
paths-ignore: | ||
- README.md | ||
- .gitignore | ||
- doc | ||
- docs | ||
|
||
jobs: | ||
build-and-test: | ||
|
||
# See https://wildwolf.name/github-actions-how-to-avoid-running-the-same-workflow-multiple-times/ | ||
if: (! contains(github.event.head_commit.message, '[skip ci]') && | ||
((github.event_name != 'pull_request') || | ||
(github.event.pull_request.head.repo.full_name != | ||
github.event.pull_request.base.repo.full_name)) | ||
) | ||
|
||
runs-on: ${{ matrix.os }} | ||
#continue-on-error: ${{ matrix.allow-fail }} | ||
#continue-on-error: ${{ matrix.devshell == 'gcc' }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-22.04, macos-12 ] | ||
py: [311] | ||
devshell: [ clang, gcc ] | ||
#allow-fail: [false] | ||
|
||
exclude: | ||
- os: macos-12 | ||
devshell: gcc | ||
|
||
steps: | ||
- uses: actions/[email protected] | ||
with: | ||
ref: ${{ github.event.pull_request.head.sha }} | ||
- uses: cachix/install-nix-action@v22 | ||
with: | ||
nix_path: nixpkgs=channel:nixos-23.05 | ||
extra_nix_config: | | ||
experimental-features = nix-command flakes | ||
- uses: cachix/cachix-action@v12 | ||
with: | ||
name: nain4 # The name of the Cachix cache | ||
# If you chose signing key for write access | ||
#signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' | ||
# If you chose API tokens for write access OR if you have a private cache | ||
authToken: '${{ secrets.CACHIX_JACG_NAIN4 }}' | ||
|
||
- name: Test bootstrapping of client project | ||
run: | | ||
cd ~/work | ||
git config --global user.name Tester | ||
git config --global user.email [email protected] | ||
nix run github:jacg/nain4#bootstrap-client-project my-project name-chosen-by-me "description of my project" | ||
cd my-project | ||
nix develop -c just | tee just-output | ||
PATTERN="end of event 10" | ||
echo Looking for "'$PATTERN'" in output of 'just' | ||
grep "$PATTERN" just-output | ||
- name: Test nix run client app | ||
run: | | ||
nix run ~/work/my-project# -- -n 13 --early "/my/bubble_radius 0.2 m" | tee run-client-app-output | ||
PATTERN="end of event 13" | ||
echo Looking for "'$PATTERN'" in output of 'just' | ||
grep "$PATTERN" run-client-app-output | ||
- name: Test nix build client package | ||
run: | | ||
nix build ~/work/my-project# | ||
- name: Test run nix build client package result | ||
run: | | ||
nix develop ~/work/my-project# -c result/bin/name-chosen-by-me --beam-on 12 | tee build-and-run-client-package-output | ||
PATTERN="end of event 12" | ||
echo Looking for "'$PATTERN'" in output of 'just' | ||
grep "$PATTERN" build-and-run-client-package-output | ||
continue-on-error: true # see issue # https://github.com/jacg/nain4/issues/161 | ||
|
||
- name: Test variables set by nain4 setupHook | ||
run: | | ||
nix develop ~/work/my-project# -c env > my-project-env | ||
echo ====== grepping for G4_DIR ==================== | ||
grep G4_DIR my-project-env | ||
echo =============================================== | ||
echo ====== grepping for G4_EXAMPLES =============== | ||
grep G4_EXAMPLES my-project-env | ||
echo =============================================== | ||
echo grepping for QT_QPA_PLATFORM_PLUGIN_PATH | ||
grep QT_QPA_PLATFORM_PLUGIN_PATH my-project-env | ||
echo =============================================== | ||
- name: Check that mdbook ANCHORs have been stripped from bootstrapped project | ||
run: | | ||
nix profile install nixpkgs#ripgrep | ||
echo LOOKING FOR ANY REMAINING ANCHORS | ||
rg ANCHOR ~/work/my-project | tee remaining-anchors | ||
! test -s remaining-anchors |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,6 +13,7 @@ jobs: | |
|
||
# See https://wildwolf.name/github-actions-how-to-avoid-running-the-same-workflow-multiple-times/ | ||
if: (! contains(github.event.head_commit.message, '[skip ci]') && | ||
! contains(github.event.head_commit.message, '[skip nain4]') && | ||
((github.event_name != 'pull_request') || | ||
(github.event.pull_request.head.repo.full_name != | ||
github.event.pull_request.base.repo.full_name)) | ||
|
@@ -62,64 +63,26 @@ jobs: | |
- name: Test nain4 | ||
run: nix develop .#${{ matrix.devshell }} -c just test-nain4 -v | ||
|
||
- name: Test bootstrapping of client project | ||
run: | | ||
cd ~/work | ||
git config --global user.name Tester | ||
git config --global user.email [email protected] | ||
nix run github:jacg/nain4#bootstrap-client-project my-project name-chosen-by-me "description of my project" | ||
cd my-project | ||
nix develop -c just | tee just-output | ||
PATTERN="end of event 10" | ||
echo Looking for "'$PATTERN'" in output of 'just' | ||
grep "$PATTERN" just-output | ||
- name: Check that mdbook ANCHORs have been stripped from bootstrapped project | ||
run: | | ||
nix profile install nixpkgs#ripgrep | ||
echo LOOKING FOR ANY REMAINING ANCHORS | ||
rg ANCHOR ~/work/my-project | tee remaining-anchors | ||
! test -s remaining-anchors | ||
- name: Test nix build client package | ||
run: | | ||
nix build ~/work/my-project# | ||
- name: Run client-side tests | ||
run: nix develop .#${{ matrix.devshell }} -c just test-client-side | ||
|
||
- name: Test run nix build client package result | ||
run: | | ||
nix develop ~/work/my-project# -c result/bin/name-chosen-by-me --beam-on 12 | tee build-and-run-client-package-output | ||
PATTERN="end of event 12" | ||
echo Looking for "'$PATTERN'" in output of 'just' | ||
grep "$PATTERN" build-and-run-client-package-output | ||
continue-on-error: true # see issue # https://github.com/jacg/nain4/issues/161 | ||
- name: Run compile-time tests | ||
run: nix develop .#${{ matrix.devshell }} -c just test-compile-time | ||
continue-on-error: ${{ matrix.os == 'macos-12' }} # bizarre time-dependent encoding errors in python test generator | ||
|
||
- name: Test variables set by nain4 setupHook | ||
run: | | ||
nix develop ~/work/my-project# -c env > my-project-env | ||
nix develop .# -c env > nain4-project-env | ||
echo ====== grepping for G4_DIR ==================== | ||
grep G4_DIR my-project-env | ||
grep G4_DIR nain4-project-env | ||
echo =============================================== | ||
echo ====== grepping for G4_EXAMPLES =============== | ||
grep G4_EXAMPLES my-project-env | ||
grep G4_EXAMPLES nain4-project-env | ||
echo =============================================== | ||
echo grepping for QT_QPA_PLATFORM_PLUGIN_PATH | ||
grep QT_QPA_PLATFORM_PLUGIN_PATH my-project-env | ||
grep QT_QPA_PLATFORM_PLUGIN_PATH nain4-project-env | ||
echo =============================================== | ||
- name: Test nix run client app | ||
run: | | ||
nix run ~/work/my-project# -- -n 13 --early "/my/bubble_radius 0.2 m" | tee run-client-app-output | ||
PATTERN="end of event 13" | ||
echo Looking for "'$PATTERN'" in output of 'just' | ||
grep "$PATTERN" run-client-app-output | ||
- name: Run client-side tests | ||
run: nix develop .#${{ matrix.devshell }} -c just test-client-side | ||
|
||
- name: Run compile-time tests | ||
run: nix develop .#${{ matrix.devshell }} -c just test-compile-time | ||
continue-on-error: ${{ matrix.os == 'macos-12' }} # bizarre time-dependent encoding errors in python test generator | ||
|
||
- name: Run N4 examples | ||
run: nix develop .#${{ matrix.devshell }} -c just n4-examples/run-all | ||
|
||
|
@@ -131,6 +94,7 @@ jobs: | |
|
||
- name: Check for presence of debug symbols in Geant4 | ||
run: | | ||
nix profile install nixpkgs#ripgrep | ||
if ${{ matrix.os == 'macos-12' }} | ||
then | ||
if rg --files-with-matches debug_info result/lib/libG4*.so | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters