Test shell variables in bootstrap project #40
Workflow file for this run
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
name: Bootstrap and test new nain4 client project | |
on: | |
pull_request: | |
push: | |
paths-ignore: | |
- README.md | |
- .gitignore | |
- doc | |
- docs | |
jobs: | |
build-and-test-bootstrap-project: | |
# 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/checkout@v3.5.3 | |
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 tester@testing.org | |
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 run dev environment | |
run: | | |
cd ~/work/my-project | |
nix develop .# -c just run --beam-on 12 | tee build-and-run-in-devenv-output | |
PATTERN="end of event 12" | |
echo Looking for "'$PATTERN'" in output of 'just' | |
grep "$PATTERN" build-and-run-in-devenv-output | |
- name: Run project tests in dev environment | |
run: | | |
cd ~/work/my-project | |
nix develop .# -c just test -v | |
- 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 --macro-path result/macs/ --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 | |
- 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: Test variables set by bootstrap project | |
run: | | |
nix develop ~/work/my-project# -c env > my-project-env | |
var="name_chosen_by_me_lib_PATH" | |
libpath=${!path} | |
echo $var $libpath | |
echo LD_LIBRARY_PATH $LD_LIBRARY_PATH | |
echo PKG_CONFIG_PATH $PKG_CONFIG_PATH | |
echo ====== checking that ${libpath} exits ================== | |
[[ -n ${libpath} ]] | |
echo ======================================================== | |
echo ====== grepping LD_LIBRARY_PATH for $libpath =========== | |
grep "$libpath" $LD_LIBRARY_PATH | |
echo ======================================================== | |
echo ====== grepping PKG_CONFIG_PATH for $libpath =========== | |
grep "$libpath/pkgconfig" $PKG_CONFIG_PATH | |
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 |