-
Notifications
You must be signed in to change notification settings - Fork 2
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
78 test installation using workflows #79
Closed
bencopl
wants to merge
29
commits into
MetOffice:main
from
bencopl:78-test-installation-using-workflows
Closed
78 test installation using workflows #79
bencopl
wants to merge
29
commits into
MetOffice:main
from
bencopl:78-test-installation-using-workflows
Conversation
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
Keeping branch78 up-to-date
* Removing --dereference stuff in tar creation (#78) * Printing profiler_hash_ for debugging (#78) * Turning tests off temporarily (#78) * Seeing if profiler entry exists after emplace (#78) * Adding debug flags to system test compile step (#78) * Trying different emplace method (#78) * Replacing emblace with insert (#78) * Running system tests inside build workflow (#78) * Reverting previous change and adding sudo installs back to system.yml (#78) * Adding sudo installs to build.yml too (#78) * Testing alternative runner version (#78) * Changing compiler version in system.yml (#78) * Explicitly setting c++ standard to 17 (#78) * Correcting job dependencies in cov.yml (#78) * Putting lcov install before build in cov.yml (#78) * Syntax error in yml (#78) * Invalid line i cov.yml (#78) * Specifying bash shell when installing lcov (#78) * Adding conda init line - getting shell related error (#78) * Trying to restart shell from command line (#78) * Slight change to conda syntax (#78) * Different command for installing lcov (#78) * Testing to see if just g++ command works when compiling sys test (#78) * Syntax error in cmake config (#78) * Erroneous " (#78) * Adding checkout step (#78) * Specifing BUILD_TYPE env variable (#78) * Grouping lcov/genhtml commands and specifying shell (#78) * Testing activating conda inside lcov step (#78) * Changing how lcov is used and adding deactivate step (#78) * Re-trying conda activate (#78) * Adding conda activate to lcov run step (#78) * Testing pip install of Lcov (#78) * Removing conda commands (#78) * Separating out lcov commands (#78) * Ensuring correct python version before pip install (#78) * Altering python/pip/lcov syntax (#78) * Removing python -m from lcov run step (#78) * Using python module venv (#78) * Missing flag from conda install (#78) * Adding ls to find where lcov installed (#78) * Trying a pip install over conda (#78) * Error in pip install syntx (#78) * Adding shell to install lcov step (#78) * Added shell specification to wrong step (#78) * Removing error prone line from install step (#78) * Re-trying conda (#78) * Removing reduntant comments (#78) * Too many hyphones in conda flag (#78) * Altering conda flag order (#78) * Specifying where conda can find lcov (#78) * Adding shell keyword to lcov step (#78) * Running conda init after lcov install (#78) * Activating env using source (#78) * Trying conda init before conda activate (#78) * Using a second conda init (#78) * Finding base conda env (#78) * Running source on conda.sh before activating (#78) * Uncommenting rest of workflow (#78) * Installing/using lcov in same step (#78) * Changing name of coverage report artifact (#78) * Deploying to pages from gh-pages branch (#78) * Adding git config info (#78) * Adding '-a' to git commit (#78) * Deploying from actions (#78) * Deploying from branch again, and creating conda env from-file (#78) * Extra steps in push (#78) * Changing environment.yml to a .txt (#78) * Mistake in conda create line (#78) * Specifying lcov dependency in conda create line rather than in environment file (#78) * Ammending conda crate command (#78) * Adding ls and git status steps to debug empty commits (#78) * Re-writing push step in cov.yml (#78) * Forgot remote update command (#78) * Trying to print coverage overview upon PR creation (#78) * Trying to use GD.pm library (#78) * Adding GD download step (#78) * Changing ubuntu version (#78) * Switching to gcovr over lcov * Yaml syntax error when declaring step envs at gcovr stage (#78) * Changing filename to index.html (#78) * Using rm not git-rm (#78) * Updating push to gh-pages step (#78) * Removing env variables from gcovr step (#78) * Adding 'a' flag to git commit (#78) * Trying git-rm aswell as rm (#78) * Specifying gcov version in gcovr command (#78) * Adding in another 'git reset' (#78) * Running git-rm again before rm (#78) * Updating git rm command (#78) * Explicitly setting obj dir path for gcovr (#78) * Error in gcovr syntax (#78) * Using correct gcovr flags (#78) * Removing build type from cmake steps (#78) * Setting default g++ version to 11 to hopefully match gcov (#78)t: * Removing initial 'sudo update-alternatives' (#78) * Only specifying g++-11 as opposed to 11.2.0 (#78) * Changing to g++-10 and remove alternatives command (#78) * REverting back to g++-11 (#78) * Adding update-alternatives command back in to set default to already-installed 10.3.0 (#78) * Seeing if runner accepts g++-9/10 path (#78) * Removing one of alternatives lines (#78) * Adding gcov under slave flag (#78) * Update comments and properly set flags (#78) * Printing summary on PR comments (#78) * printing text summary to pull request comments * printing text summary to pull request comments * Comment/documentation changes and adding -s flag to html-output gcovr step (#78) * Format changes and adding env.CXX back to doc workflow (#78) * adding covereage badge to README * Adding steps to automatically push README changes (#78) * Adding full path to brief-summary.txt (#78) * trying again with redirecting --print-summary to a .txt * Touching brief-summary.txt first (#78) * Was putting info into brief-summary.txt in the wrong step (#78) * Syntax error in sed command (#78) * Update README.md * Adding {} around BADGE_URL and WORKFLOW_URL (#78) * Update README.md * Removing quotation marks around BADGE declaration (#78) * Update README.md * Defining BADGE with env: syntax (#78) * Added single quotes around BADGE (#78) * Using different syntax to correctly determine colour of badge (#78) * Changing sed delimiter to # to avoid multiple '/' confusion (#78) * Update README.md * Using '>=' over '-ge' in determine-colour step (#78) * Update README.md * New coverage workflow with neater overall structure (#78) * Missing out cov.txt [temporairly a .txt] from prev commit (#78) * Update README.md * new coverage workflow that splits into 3 seperate jobs (#78) * Syntax error in if statement (#78) * typo (working-directiry) (#78) * Activating correct conda environment (#78) * fixing gcovr output flag (#78) * correcting path to html artifact (#78) * Calling checkout action in all subsequent jobs (#78) * Update README.md * Creating build directory in deploy_pages job * Update README.md * Workflow test branch (#9) * added title to PR comment * Update README.md * fixing path to report.txt * restructuring setup of OPTIONAL_ARGS * removing plastic style from coverage badge --------- Co-authored-by: github-actions[bot] <github-actions[bot]> * Update README.md * Update README.md * Seperating install step into different workflow (#78) * Making install step depend on build (#78) * Adding build type environment variable to install workflow (#78) * Running ls in system.yml after download to see what files were found (#78) * Fixing tar's file not found error (#78) * Moving install tar to build dir before unzipping (#78) * Unzipping install tar in root dir instead of build (#78) * seeing if mpi/omp install is required before system tests (#78) * adding clang compiler (#78) * error in yaml syntax (#78) * adding default shell to individual jobs (#78) * changing name of 'artifact' matrix (#78) * Update test.yml * Update system.yml * Update test.yml * removed dyn-build and sta-build env variables (#78) * ammending build directory name declaration at start of build (#78) * ammending build directory name declaration at start of build again (#78) * Running ls before unzipping artifact (#78) * Different command for unzipping all tar.gz in current dir (#78) * Adding -n1 flag to xargs tar step (#78) * Install workflow finished off and testing subsequent download in system.yml (#78) * Fixing yaml syntax errors and ammending one of the input descriptions (#78) * Reordering flags at cmake install step (#78) * Switching to find's -exec -c instead of xargs (#78) * Explicitly setting default shell to bash (#78) * Running tar from root dir in install workflow (#78) * Compiling and running system test using both compilers (#78) * Updating ld path before system testing (#78) * Updating system test permissions before running (#78) * Compiler config done at new top-level workflow (#78) * Fixing 'aritfact' typo * Adding checkout actioin to unit.yml (#78) * Artifact upload failure, retrying * Additional workflow that calls top.yml (#78) * Changed input. to inputs.[] (#78) * Nesting workflows within each other (#78) * Moving system to avoid exceeding nest limit (#78) * Removing artifact inputs from build.yml (#78) * Fixing working dir when running ctest (#78) * New deploy_tests.yml and recallables altered accordingly (#78) * Changing 'bool' to 'boolean' (#78) * Fixing wrong inputs to system (#78) * Fixing formatting of matrix environment variables (#78) * Fixing formatting of matrix environment variables again(#78) * Trying again with matrix env variables (#78) * Adding appropriate backslashes to json env variable (#78) * Removing fromJson function from matrix setting (#78) * Trying single quotes around matrix declarations (#78) * Returning to fromjson method for matrix parsing (#78) * Reformatting json matrix declaration (#78) * Testing if only having matrix defined solves json parse problem (#78) * Using single quotes around the compiler and libs matrices (#78) * Definding compiler and libs matrices in job instead of as environment variables (#78) * Update deploy_tests.yml * Putting Json into variable before github output (#78) * Altering set-output step (#78) * Potential fix if problem is caused by multi-line github outputs (#78) * Removing json stuff to test general workflow (#78) * Typo in install.yml (#78) * Removing redundant xargs command (#78) * Adding verbose flag to cmake (#78) * Removing config cmake flag for now (#78) * Trying 'make install' over 'cmake --install' (#78) * Running ls at cmake install step (#78) * Merging build and install workflows (#78) * Removing install from dependency from system test job (#78) * Adding ls before and after tar step in system.yml (#78) * Unzipping tar in correct place in system.yml (#78) * Erroneous line in system (#78) * Changing system to ubuntu latest (#78) * Correcting path to profiler libs in system test (#78) * Adding PROF path to ld lib path and adding echo sanity check (#78) * Showing contents of installed dirs in system.yml (#78) * Removing leading '/' from install dir path (#78) * Adding leading fowardslashes back to install path (#78) * Adding '-C /' when unzipping install dir and trying ternary in job name (#78) * Updating ld path before compiling system test (#78) * Updating name of system test job too (#78) * Adding omp lib install before system testing (#78) * Fixing unit.yml unzip step (#78) * Printing cpp compiler version before sys test (#78) * Adding verbose compilation for system tst (#78) * Trying env variable matrix trick again (#78) * Defining matrices with text not json (#78) * Dynamic matrix method with no | in env variable (#78) * Removing coverage and doc changes from this issue (#78) * Fixing workflow depedencies at top level (#78) * Adding fortran system test (#78) * Adjusting system tests and associated workflow (#78) * Adding f90 sys test (#78) * Adding verbose output to mpif90 (#78) * Changing to mpifort (#78) * Specifying compiler in mpicxx and mpifort commands (#78) * Fixing yml syntax error in system.yml (#78) * Tidying up comments (#78) * Added draft readme for the system testing (#78) * Finishing touches to new readme (#78) * Removing -lprofiler flag from f90 sys test (#78) * Seeing if lprofiler_c needed (#78) * Reording flag when compiling sys test (#78) --------- Co-authored-by: github-actions[bot] <github-actions[bot]>
… in different branch (#78)
This was my PR about updating how the workflows are done and adding a system test. I'm not sure if the "updating how the workflows are done" bit is needed anymore to be honest, but it's definitely a good idea to add some system tests to the repo. I'll leave this with @andrewcoughtrie to have a peek at, and I'm happy to revisit this. (Iva has my personal email address) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #78
Closes #20 (?)
New workflow files:
build.yml
is a reusable workflow that does a build and install of the profiler and its libraries. Two artifacts are uploaded that are subsequently used for unit testing and system testing.system.yml
downloads the 'include' and 'lib' directories from building and uses them to run two new system tests.unit.yml
downloads the entire build directory and runsctest
.deploy_tests.yml
wraps everything together by calling the 3 aforementioned workflows in order. Having a top-level workflow like this that has a chain of jobs makes the final workflow summary page easy to follow.The compiler matrix is declared as an environment variable at the top of
deploy_tests.yml
. This makes it easy to add additional configurations in the future by adding a new row of entires that follow the same json-esque format.Notes on how to run the system tests manually have been added to
Profiler.md
as they serve as decent examples of how to make calls to the profiler's API in both C++ and Fortran.Other notes:
actions/checkout@v3
(previously v2).runs on: ubuntu-20.04
since current "latest" revision seems error prone.build.yml
currently usesactions/[email protected]
. The most recent version, v3, would randomly fail with an exit code of 400 and had to be consistently re-ran.