Use these scripts to administer the jetstream2 VMs. They provide resources to GitHub Actions to perform expensive build and test options more quickly.
Use the runner [self-hosted,jetstream2,CPU] to select these runners for GitHub Actions jobs.
The VMs shutdown automatically after a period of inactivity. Start the runners as part of the workflow with this job:
start_action_runners:
name: Start
uses: glotzerlab/jetstream2-admin/.github/workflows/start.yaml@98f840ba341f72bf412100f2180d38c06e792b84 # v1.3.0
secrets: inherit
Optionally request only a certain number of runners:
start_action_runners:
name: Start
uses: glotzerlab/jetstream2-admin/.github/workflows/start.yaml@98f840ba341f72bf412100f2180d38c06e792b84 # v1.3.0
secrets: inherit
with:
number: 1
- Create and manage VMs at: https://jetstream2.exosphere.app/exosphere/home
- Add VMs to the inventory in
hosts.yaml.
Use ansible to install GitHub Actions on the VMs::
ansible-playbook configure-runners.yaml -i hosts.yaml
configure-runners.yamlwill ask for a token from GitHub's add runner page.update-instances.yamlwill update the apt packages.- View the active runners on GitHub.
auto-shutdown.shautomatically shuts down instances when the actions-runner service is idle for some time.shelve-action-runners.pyshelves actions-runner instances that are powered down.start-action-runners.pystarts actions-runner instances.
HOOMD's GitHub Actions scripts run start-action-runners.py when needed. This repository runs
shelve-action-runners.py periodically in GitHub Actions to shelve the instances when not needed.
Both of these scripts may be run locally with the proper authentication token (see
https://docs.jetstream-cloud.org/ui/cli/overview/).
Use ansible to download usage data::
ansible-playbook fetch-activity-logs.yaml -i hosts.yaml
Then, run the usage-details.ipynb notebook in Jupyter.
Use prek to check for code style and formatting.
The jetstream2 administration scripts are available under the 3-clause BSD license.