diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..5e597c1 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,24 @@ +name: Testing the GitHub Pages publication + +on: + push + +jobs: + jekyll: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + # Use GitHub Actions' cache to shorten build times and decrease load on servers + - uses: actions/cache@v2 + with: + path: vendor/bundle + key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile') }} + restore-keys: | + ${{ runner.os }}-gems- + + # Standard usage + - uses: helaili/jekyll-action@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + target_branch: 'gh-pages' \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3fe6b71 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +*.gem +*.sublime-project +*.sublime-workspace +.bundle +.DS_Store +.jekyll-cache +.jekyll-metadata +.sass-cache +_asset_bundler_cache +_site +codekit-config.json +example/_site +Gemfile.lock +node_modules +npm-debug.log* +vendor/bundle diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..2eded5a --- /dev/null +++ b/Gemfile @@ -0,0 +1,18 @@ +source "https://rubygems.org" + +gem "jekyll" +gem "minimal-mistakes-jekyll" + +# If you have any plugins, put them here! +group :jekyll_plugins do + gem "jekyll-paginate" + gem "jekyll-sitemap" + gem "jekyll-gist" + gem "jekyll-feed" + gem "jemoji" + gem "jekyll-include-cache" + gem "jekyll-algolia" + gem "jekyll-sass-converter", "~> 2.0" +end + +gem "webrick", "~> 1.7" diff --git a/README.md b/README.md index d3d0b26..ad44d6f 100644 --- a/README.md +++ b/README.md @@ -1,73 +1,8 @@ # Buildtest -Welcome to buildtest home page. This page provides documentation on how to use buildtest and how to contribute to the project. +Welcome to buildtest home page. This repository is used to publish buildtest website using GitHub Pages. -## What is buildtest? - -buildtest is a HPC testing framework that provides a flexible way to test software stack on HPC systems. -buildtest is designed to be a generic framework that can be used to test any software stack. Test are written -in YAML format called **buildspecs** that is used to describe test configuration. buildtest will translate the -configuration into a valid test script that can be executed on the system. - -## Installation - -Buildtest requires Python 3.8 or higher. You can [Install Python](https://www.python.org/downloads/) or use -[Anaconda](https://www.anaconda.com/) to manage python installation. - -Buildtest is simple to install, just clone the repo and source the setup script. We recommend you create a python -virtual environment. Shown below are the instructions assuming you have cloned the repo in your home directory. - -```console -git clone https://github.com/buildtesters/buildtest.git -python3 -m venv $HOME/.pyenv/buildtest -source $HOME/.pyenv/buildtest/bin/activate -source $HOME/buildtest/setup.sh -``` - -## Features - -Buildtest - -## Example Test - -An example test configuration can be shown below, typically a test will start off with declaration of **buildspecs** followed -by name of test name ``systemd_default_target``. The ``executor`` field is used to specify the executor to use to run the test. -The ``type`` field is used to determine which schema type to use for validating schema. The ``description`` is used to provide -a description of the test. The ``run`` field is used to provide the test script to run. The ``tags`` field is used to classify -so they can be run by a tagname. - -```yaml -buildspecs: - systemd_default_target: - executor: generic.local.bash - type: script - tags: [system] - description: check if default target is multi-user.target - run: | - if [ "multi-user.target" == `systemctl get-default` ]; then - echo "multi-user is the default target"; - exit 0 - fi - echo "multi-user is not the default target"; - exit 1 -``` -## Running Test - -The ``buildtest build`` command is used to build test scripts from buildspecs. Typically -one would specify path to file using ``-b`` option which can be used to specify a file or directory path. -The `-b` option can be appended multiple times to specify multiple buildspecs. - -```console -buildtest build -b /path/to/buildspecs.yml -buildtest build -b /path/to/directory -buildtest build -b -b -b -``` - -## References - -- [buildtest Documentation](https://buildtest.readthedocs.io/en/latest/) -- [buildtest GitHub](https://github.com/buildtesters/buildtest) -- [buildtest Slack](https://buildtesters.slack.com) -- [Join buildtest Slack](https://communityinviter.com/apps/hpcbuildtest/buildtest-slack-invitation) +This site is based on Jekyll multi-page site +using the awesome [minimal-mistakes](https://mmistakes.github.io/minimal-mistakes/). diff --git a/_config.yml b/_config.yml index fd3b081..5bbb9f3 100644 --- a/_config.yml +++ b/_config.yml @@ -1,4 +1,299 @@ -title: Buildtest -logo: /assets/logo/BuildTest_Primary_Center_3x1.png -description: Minimal is a theme for GitHub Pages. -theme: jekyll-theme-minimal \ No newline at end of file +# Welcome to Jekyll! +# +# This config file is meant for settings that affect your entire site, values +# which you are expected to set up once and rarely need to edit after that. +# For technical reasons, this file is *NOT* reloaded automatically when you use +# `jekyll serve`. If you change this file, please restart the server process. + +# Theme Settings +# +# Review documentation to determine if you should use `theme` or `remote_theme` +# https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/#installing-the-theme + +theme : "minimal-mistakes-jekyll" +# remote_theme : "mmistakes/minimal-mistakes" +minimal_mistakes_skin : "default" # "air", "aqua", "contrast", "dark", "dirt", "neon", "mint", "plum", "sunrise" + +# Site Settings +locale : "en-US" +title : "Buildtest" +title_separator : "-" +subtitle : "" +name : "" +description : "" +url : https://buildtesters.github.io/buildtest.io/ +baseurl : # the subpath of your site, e.g. "/blog" +repository : # GitHub username/repo-name e.g. "mmistakes/minimal-mistakes" +teaser : "" +logo : /assets/images/buildtest-logo.png +masthead_title : # overrides the website title displayed in the masthead, use " " for no title +# breadcrumbs : false # true, false (default) +words_per_minute : 200 +comments: + provider : # false (default), "disqus", "discourse", "facebook", "staticman", "staticman_v2", "utterances", "custom" + disqus: + shortname : # https://help.disqus.com/customer/portal/articles/466208-what-s-a-shortname- + discourse: + server : # https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963 , e.g.: meta.discourse.org + facebook: + # https://developers.facebook.com/docs/plugins/comments + appid : + num_posts : # 5 (default) + colorscheme : # "light" (default), "dark" + utterances: + theme : # "github-light" (default), "github-dark" + issue_term : # "pathname" (default) +staticman: + allowedFields : # ['name', 'email', 'url', 'message'] + branch : # "master" + commitMessage : # "New comment by {fields.name}" + filename : # comment-{@timestamp} + format : # "yml" + moderation : # true + path : # "/_data/comments/{options.slug}" (default) + requiredFields : # ['name', 'email', 'message'] + transforms: + email : # "md5" + generatedFields: + date: + type : # "date" + options: + format : # "iso8601" (default), "timestamp-seconds", "timestamp-milliseconds" + endpoint : # URL of your own deployment with trailing slash, will fallback to the public instance +reCaptcha: + siteKey : + secret : +atom_feed: + path : # blank (default) uses feed.xml +search : # true, false (default) +search_full_content : # true, false (default) +search_provider : # lunr (default), algolia, google +algolia: + application_id : # YOUR_APPLICATION_ID + index_name : # YOUR_INDEX_NAME + search_only_api_key : # YOUR_SEARCH_ONLY_API_KEY + powered_by : # true (default), false +google: + search_engine_id : # YOUR_SEARCH_ENGINE_ID + instant_search : # false (default), true +# SEO Related +google_site_verification : +bing_site_verification : +yandex_site_verification : +naver_site_verification : + +# Social Sharing +twitter: + username : +facebook: + username : + app_id : + publisher : +og_image : # Open Graph/Twitter default site image +# For specifying social profiles +# - https://developers.google.com/structured-data/customize/social-profiles +social: + type : # Person or Organization (defaults to Person) + name : # If the user or organization name differs from the site's name + links: # An array of links to social media profiles + +# Analytics +analytics: + provider : "google" + google: + tracking_id : + anonymize_ip : # true, false (default) + + +# Site Author +# author: +# name : "Your Name" +# avatar : # path of avatar image, e.g. "/assets/images/bio-photo.jpg" +# bio : "I am an **amazing** person." +# location : "Somewhere" +# email : +# links: +# - label: "Email" +# icon: "fas fa-fw fa-envelope-square" +# # url: mailto:your.name@email.com +# - label: "Website" +# icon: "fas fa-fw fa-link" +# # url: "https://your-website.com" +# - label: "Twitter" +# icon: "fab fa-fw fa-twitter-square" +# # url: "https://twitter.com/" +# - label: "Facebook" +# icon: "fab fa-fw fa-facebook-square" +# # url: "https://facebook.com/" +# - label: "GitHub" +# icon: "fab fa-fw fa-github" +# # url: "https://github.com/" +# - label: "Instagram" +# icon: "fab fa-fw fa-instagram" +# # url: "https://instagram.com/" + +# Site Footer +footer: + links: + - label: "Twitter" + icon: "fab fa-fw fa-twitter-square" + url: + - label: "GitHub" + icon: "fab fa-fw fa-github" + url: https://github.com/buildtesters/buildtest + - label: "Slack" + icon: "fab fa-slack" + url: "https://hpcbuildtest.slack.com" + - label: "Matrix" + icon: "fa fa-comments" + url: + - label: "Docs" + icon: "fas fa-book" + url: https://buildtest.readthedocs.io/ + - label: "Discussion" + icon: "fab fa-google" + url: + - label: "maintainers" + icon: "far fa-envelope" + url: +# - label: "GitLab" +# icon: "fab fa-fw fa-gitlab" +# # url: + + +# Reading Files +include: + - "_pages" +exclude: + - "*.sublime-project" + - "*.sublime-workspace" + - vendor + - .asset-cache + - .bundle + - .jekyll-assets-cache + - .sass-cache + - assets/js/plugins + - assets/js/_main.js + - assets/js/vendor + - Capfile + - CHANGELOG + - config + - Gemfile + - Gruntfile.js + - gulpfile.js + - LICENSE + - log + - node_modules + - package.json + - Rakefile + - README + - tmp + - /docs # ignore Minimal Mistakes /docs + - /test # ignore Minimal Mistakes /test +keep_files: + - .git + - .svn +encoding: "utf-8" +markdown_ext: "markdown,mkdown,mkdn,mkd,md" + + +# Conversion +markdown: kramdown +highlighter: rouge +lsi: false +excerpt_separator: "\n\n" +incremental: false + + +# Markdown Processing +kramdown: + input: GFM + hard_wrap: false + auto_ids: true + footnote_nr: 1 + entity_output: as_char + toc_levels: 1..6 + smart_quotes: lsquo,rsquo,ldquo,rdquo + enable_coderay: false + + +# Sass/SCSS +sass: + sass_dir: _sass + style: compressed # https://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style + + +# Outputting +permalink: /:categories/:title/ +paginate: 10 # amount of posts to show +paginate_path: /page:num/ +timezone: # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + + +# Plugins (previously gems:) +plugins: + - jekyll-paginate + - jekyll-sitemap + - jekyll-gist + - jekyll-feed + - jekyll-include-cache + +# mimic GitHub Pages with --safe +whitelist: + - jekyll-paginate + - jekyll-sitemap + - jekyll-gist + - jekyll-feed + - jekyll-include-cache + + +# Archives +# Type +# - GitHub Pages compatible archive pages built with Liquid ~> type: liquid (default) +# - Jekyll Archives plugin archive pages ~> type: jekyll-archives +# Path (examples) +# - Archive page should exist at path when using Liquid method or you can +# expect broken links (especially with breadcrumbs enabled) +# - /tags/my-awesome-tag/index.html ~> path: /tags/ +# - /categories/my-awesome-category/index.html ~> path: /categories/ +# - /my-awesome-category/index.html ~> path: / +category_archive: + type: liquid + path: /categories/ +tag_archive: + type: liquid + path: /tags/ +# https://github.com/jekyll/jekyll-archives +# jekyll-archives: +# enabled: +# - categories +# - tags +# layouts: +# category: archive-taxonomy +# tag: archive-taxonomy +# permalinks: +# category: /categories/:name/ +# tag: /tags/:name/ + + +# HTML Compression +# - https://jch.penibelst.de/ +compress_html: + clippings: all + ignore: + envs: development + + +# Defaults +defaults: + # _posts + - scope: + path: "" + type: posts + values: + layout: single + author_profile: true + read_time: false + comments: # true + share: true + related: false diff --git a/_data/navigation.yml b/_data/navigation.yml new file mode 100644 index 0000000..d308144 --- /dev/null +++ b/_data/navigation.yml @@ -0,0 +1,6 @@ +# main links +main: + - title: "About" + url: /about/ + - title: "References" + url: /references/ diff --git a/about.md b/about.md new file mode 100644 index 0000000..048f845 --- /dev/null +++ b/about.md @@ -0,0 +1,226 @@ +--- +title: About Buildtest +layout: single +toc: true +author_profile: false +--- + + +## What is buildtest? + +buildtest is a HPC testing framework that provides a flexible way to test software stack on HPC systems. +buildtest is designed to be a generic framework that can be used to test any software stack. Test are written +in YAML format called **buildspecs** that is used to describe test configuration. buildtest will translate the +configuration into a valid test script that can be executed on the system. + +# Installation + +Buildtest requires Python 3.8 or higher. You can [Install Python](https://www.python.org/downloads/) or use +[Anaconda](https://www.anaconda.com/) to manage python installation. + +Buildtest is simple to install, just clone the repo and source the setup script. We recommend you create a python +virtual environment. Shown below are the instructions assuming you have cloned the repo in your home directory. + +{% highlight console %} +git clone https://github.com/buildtesters/buildtest.git +python3 -m venv $HOME/.pyenv/buildtest +source $HOME/.pyenv/buildtest/bin/activate +source $HOME/buildtest/setup.sh +{% endhighlight %} + +## Features + +Buildtest commands with many features to help you build, run, and inspect tests. Below are some of the features: + +- Build and run tests from buildspecs +- Support job submission to resource managers including Slurm, LSF, PBS and Cobalt +- Integration with environment modules and Lmod including CrayPE +- Support for running tests in containers (Docker, Singularity, Podman) +- Publish test results to CDASH +- Query report file and filter or format output to find relevant information +- Support for running tests in parallel +- Multi test generation via compilers or executors + +## Example Test + +An example test configuration can be shown below, typically a test will start off with declaration of *buildspecs* followed +by name of test name `systemd_default_target`. The `executor` field is used to specify the executor to use to run the test. +The `type` field is used to determine which schema type to use for validating schema. The `description` is used to provide +a description of the test. The `run` field is used to provide the test script to run. The `tags` field is used to classify +so they can be run by a tagname. + + {% highlight yaml %} + buildspecs: + systemd_default_target: + executor: generic.local.bash + type: script + tags: [system] + description: check if default target is multi-user.target + run: | + if [ "multi-user.target" == `systemctl get-default` ]; then + echo "multi-user is the default target"; + exit 0 + fi + echo "multi-user is not the default target"; + exit 1 + {% endhighlight %} + +## Command Usage + +The ``buildtest build`` command is used to build test scripts from buildspecs. Typically +one would specify path to file using `-b` option which can be used to specify a file or directory path. +The `-b` option can be appended multiple times to specify multiple buildspecs. + +{% highlight bash %} + # build a single buildspec + $ buildtest build -b /path/to/buildspec.yaml + + # build multiple buildspecs + $ buildtest build -b /path/to/buildspec1.yaml -b /path/to/buildspec2.yaml + + # build all buildspecs in a directory + $ buildtest build -b /path/to/buildspecs + + # buildtest by tagname + $ buildtest build --tags system + + # exclude buildspecs + $ buildtest build -b /path/to/buildspecs/ --exclude /path/to/buildspecs/file1.yaml + + # buildtest by name + $ buildtest build --name systemd_default_target +{% endhighlight %} + +## Example Output + +Shown below a typical output of running a test using `buildtest build` command. You can see buildtest will +discover the buildspec, attempt to parse the buildspec, and then run the test. After the test is run, buildtest +will summarize the test results and write the output to a report file. + +{% highlight console %} +(buildtest) spack@adf5079df74b:~/buildtest$ buildtest build -b general_tests/configuration/systemd-default-target.yml +╭─────────────────────────────────────────────────── buildtest summary ───────────────────────────────────────────────────╮ +│ │ +│ User: spack │ +│ Hostname: adf5079df74b │ +│ Platform: Linux │ +│ Current Time: 2024/02/29 20:07:35 │ +│ buildtest path: /home/spack/buildtest/bin/buildtest │ +│ buildtest version: 1.8 │ +│ python path: /home/spack/pyenv/buildtest/bin/python3 │ +│ python version: 3.11.6 │ +│ Configuration File: /home/spack/buildtest/buildtest/settings/spack_container.yml │ +│ Test Directory: /home/spack/runs │ +│ Report File: /home/spack/buildtest/var/report.json │ +│ Command: /home/spack/buildtest/bin/buildtest build -b general_tests/configuration/systemd-default-target.yml │ +│ │ +╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +─────────────────────────────────────────────────────────────────────────────────────────────────────── Discovering Buildspecs ──────────────────────────────────────────────────────────────────────────────────────────────────────── + Discovered buildspecs +╔══════════════════════════════════════════════════════════════════════════════╗ +║ buildspec ║ +╟──────────────────────────────────────────────────────────────────────────────╢ +║ /home/spack/buildtest/general_tests/configuration/systemd-default-target.yml ║ +╟──────────────────────────────────────────────────────────────────────────────╢ +║ Total: 1 ║ +╚══════════════════════════════════════════════════════════════════════════════╝ + + +Total Discovered Buildspecs: 1 +Total Excluded Buildspecs: 0 +Detected Buildspecs after exclusion: 1 +────────────────────────────────────────────────────────────────────────────────────────────────────────── Parsing Buildspecs ────────────────────────────────────────────────────────────────────────────────────────────────────────── +Valid Buildspecs: 1 +Invalid Buildspecs: 0 +/home/spack/buildtest/general_tests/configuration/systemd-default-target.yml: VALID +Total builder objects created: 1 + Builders by type=script +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃ builder ┃ type ┃ executor ┃ compiler ┃ nodes ┃ procs ┃ description ┃ buildspecs ┃ +┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ +│ systemd_default_target/1b413a0c │ script │ generic.local.bash │ None │ None │ None │ check if default target is multi-user.target │ /home/spack/buildtest/general_tests/configuration/systemd-default-target.yml │ +└─────────────────────────────────┴────────┴────────────────────┴──────────┴───────┴───────┴──────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────┘ +──────────────────────────────────────────────────────────────────────────────────────────────────────────── Building Test ───────────────────────────────────────────────────────────────────────────────────────────────────────────── +systemd_default_target/1b413a0c: Creating Test Directory: /home/spack/runs/generic.local.bash/systemd-default-target/systemd_default_target/1b413a0c +──────────────────────────────────────────────────────────────────────────────────────────────────────────── Running Tests ───────────────────────────────────────────────────────────────────────────────────────────────────────────── +Spawning 8 processes for processing builders +───────────────────────────────────────────────────────────────────────────────────────────────────────────── Iteration 1 ────────────────────────────────────────────────────────────────────────────────────────────────────────────── +systemd_default_target/1b413a0c does not have any dependencies adding test to queue + Builders Eligible to Run +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃ Builder ┃ +┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ +│ systemd_default_target/1b413a0c │ +└─────────────────────────────────┘ +systemd_default_target/1b413a0c: Current Working Directory : /home/spack/runs/generic.local.bash/systemd-default-target/systemd_default_target/1b413a0c/stage +systemd_default_target/1b413a0c: Running Test via command: bash systemd_default_target_build.sh +systemd_default_target/1b413a0c: failed to submit job with returncode: 1 +────────────────────────────────────────────────────────────────────────────────────────── Error Message for systemd_default_target/1b413a0c ─────────────────────────────────────────────────────────────────────────────────────────── + +systemd_default_target/1b413a0c: Detected failure in running test, will attempt to retry test: 1 times +systemd_default_target/1b413a0c: Run - 1/1 +systemd_default_target/1b413a0c: Running Test via command: bash systemd_default_target_build.sh +systemd_default_target/1b413a0c: failed to submit job with returncode: 1 +systemd_default_target/1b413a0c: Test completed in 8.617189 seconds with returncode: 1 +systemd_default_target/1b413a0c: Writing output file - /home/spack/runs/generic.local.bash/systemd-default-target/systemd_default_target/1b413a0c/systemd_default_target.out +systemd_default_target/1b413a0c: Writing error file - /home/spack/runs/generic.local.bash/systemd-default-target/systemd_default_target/1b413a0c/systemd_default_target.err + Test Summary +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━┓ +┃ builder ┃ executor ┃ status ┃ returncode ┃ runtime ┃ +┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━┩ +│ systemd_default_target/1b413a0c │ generic.local.bash │ FAIL │ 1 │ 8.617 │ +└─────────────────────────────────┴────────────────────┴────────┴────────────┴─────────┘ + + + +Passed Tests: 0/1 Percentage: 0.000% +Failed Tests: 1/1 Percentage: 100.000% + + +Adding 1 test results to report file: /home/spack/buildtest/var/report.json +Writing Logfile to /home/spack/buildtest/var/logs/buildtest_a99wl1r2.log +{% endhighlight %} + +Once test is complete you can view the output and error content using the `buildtest inspect query` command. This command will take an argument that is the name of the +test in this case `systemd_default_target` is the name of test that was specified in the buildspec. + +A typical output would look something like this: + +{% highlight console %} +(buildtest) spack@adf5079df74b:~/buildtest$ buildtest inspect query -o -e systemd_default_target +───────────────────────────────────────────────────────────────────────────────────── systemd_default_target/3c14104c-6da6-4beb-afb0-f7c77494ee35 ────────────────────────────────────────────────────────────────────────────────────── +Executor: generic.local.bash +Description: check if default target is multi-user.target +State: FAIL +Returncode: 1 +Runtime: 8.196687 sec +Starttime: 2024/02/29 20:09:09 +Endtime: 2024/02/29 20:09:17 +Command: bash systemd_default_target_build.sh +Test Script: /home/spack/runs/generic.local.bash/systemd-default-target/systemd_default_target/3c14104c/systemd_default_target.sh +Build Script: /home/spack/runs/generic.local.bash/systemd-default-target/systemd_default_target/3c14104c/systemd_default_target_build.sh +Output File: /home/spack/runs/generic.local.bash/systemd-default-target/systemd_default_target/3c14104c/systemd_default_target.out +Error File: /home/spack/runs/generic.local.bash/systemd-default-target/systemd_default_target/3c14104c/systemd_default_target.err +Log File: /home/spack/buildtest/var/logs/buildtest_e8hctigl.log +────────────────────────────────────────────────── Output File: /home/spack/runs/generic.local.bash/systemd-default-target/systemd_default_target/3c14104c/systemd_default_target.out ────────────────────────────────────────────────── +==> Regenerating tcl module files +multi-user is not the default target + +────────────────────────────────────────────────── Error File: /home/spack/runs/generic.local.bash/systemd-default-target/systemd_default_target/3c14104c/systemd_default_target.err ─────────────────────────────────────────────────── +{% endhighlight %} + + +## Reporting Issues + +Please report all issues related to buildtest at [https://github.com/buildtesters/buildtest/issues](https://github.com/buildtesters/buildtest/issues). +You may consider posting your question in slack to see if someone can help you. + +## Get Involved! + +If you are interested in buildtest, join the [buildtest Slack](https://buildtesters.slack.com) to get help. You can use the [Join buildtest Slack](https://communityinviter.com/apps/hpcbuildtest/buildtest-slack-invitation) that +will help you get access to Slack. + +We love to get your contribution! If you are a first time contributor then check out the +[buildtest contribution guide](https://buildtest.readthedocs.io/en/devel/contributing.html) for details on how to get started. + + diff --git a/assets/css/main.scss b/assets/css/main.scss new file mode 100644 index 0000000..c3f05a2 --- /dev/null +++ b/assets/css/main.scss @@ -0,0 +1,21 @@ +--- +# upgrade-friendly font size adjustment for Minimal Mistakes +# see https://github.com/mmistakes/minimal-mistakes/issues/1219 +--- +@import "minimal-mistakes"; + +html { + font-size: 14px; // change to whatever + + @include breakpoint($medium) { + font-size: 14px; // change to whatever + } + + @include breakpoint($large) { + font-size: 16px; // change to whatever + } + + @include breakpoint($x-large) { + font-size: 18px; // change to whatever + } +} diff --git a/assets/logo/BuildTest_Primary_Center_3x1.png b/assets/images/buildtest-logo.png similarity index 100% rename from assets/logo/BuildTest_Primary_Center_3x1.png rename to assets/images/buildtest-logo.png diff --git a/assets/images/perlmutter.jpeg b/assets/images/perlmutter.jpeg new file mode 100644 index 0000000..708df4b Binary files /dev/null and b/assets/images/perlmutter.jpeg differ diff --git a/banner.js b/banner.js new file mode 100644 index 0000000..db3974c --- /dev/null +++ b/banner.js @@ -0,0 +1,19 @@ +const fs = require("fs"); +const pkg = require("./package.json"); +const filename = "assets/js/main.min.js"; +const script = fs.readFileSync(filename); +const padStart = str => ("0" + str).slice(-2); +const dateObj = new Date(); +const date = `${dateObj.getFullYear()}-${padStart( + dateObj.getMonth() + 1 +)}-${padStart(dateObj.getDate())}`; +const banner = `/*! + * Minimal Mistakes Jekyll Theme ${pkg.version} by ${pkg.author} + * Copyright 2013-${dateObj.getFullYear()} Michael Rose - mademistakes.com | @mmistakes + * Licensed under ${pkg.license} + */ +`; + +if (script.slice(0, 3) != "/**") { + fs.writeFileSync(filename, banner + script); +} diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..eabaf25 Binary files /dev/null and b/favicon.ico differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..e60183d --- /dev/null +++ b/index.html @@ -0,0 +1,31 @@ +--- +layout: home +author_profile: false +title: Buildtest +excerpt: HPC Testing Framework for running acceptance tests. +header: + overlay_image: /assets/images/perlmutter.jpeg + overlay_filter: .5 + caption: "Photo: [**LBNL Perlmutter**](https://www.nersc.gov/systems/perlmutter/)" + actions: + - label: " GitHub" + url: "https://github.com/buildtesters/buildtest" + - label: " Slack" + url: "https://hpcbuildtest.slack.com" + - label: " Docs" + url: "https://buildtest.readthedocs.io/" +--- + +{% capture markdown %} +# Welcome to Buildtest! + +buildtest is a HPC testing framework that provides a flexible way to test software stack on HPC systems. +buildtest is designed to be a generic framework that can be used to test any software stack. Test are written +in [YAML](https://yaml.org/) format called **buildspecs** that is used to describe test configuration. +buildtest will translate the configuration into a valid test script that can be executed on the system. The +framework is implemented in Python and uses [JSON Schema](https://json-schema.org/) for validation of buildspecs. + +Learn more [here](/about/). {% endcapture %} + +{{ markdown | markdownify }} + diff --git a/references.md b/references.md new file mode 100644 index 0000000..2154dd5 --- /dev/null +++ b/references.md @@ -0,0 +1,23 @@ +--- +title: References +layout: single +author_profile: false +--- + +Title: Automated Software Testing of Spack/E4S with buildtest + +Venue: SC23 + +Date: Nov 15th 2023 + +![SC23](https://drive.google.com/file/d/1SNI0JwCXjODSCVfGjKHX8Y_L5esCpiDq/view) + +Title: **Automated Acceptance Testing in HPC with buildtest** at *ECP Project Tutorial* + +Date: Feb 7th 2023 + +{% include video id="YxOm6aiDy3E" provider="youtube" %} + +## Publication + +[Link to PDF](https://drive.google.com/file/d/1haOuYdVYrn4Xv17fXPzU3LSaLM1Z89ie/view)