{"id":21140888,"url":"https://github.com/glotzerlab/jetstream2-admin","last_synced_at":"2025-03-14T13:13:40.546Z","repository":{"id":39571818,"uuid":"471073962","full_name":"glotzerlab/jetstream2-admin","owner":"glotzerlab","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-09T19:37:39.000Z","size":157,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"trunk","last_synced_at":"2025-01-21T06:46:43.286Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/glotzerlab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-17T17:12:34.000Z","updated_at":"2025-01-09T19:34:07.000Z","dependencies_parsed_at":"2023-02-08T12:15:33.439Z","dependency_job_id":"8bf7aee8-d92d-4f32-916e-107f2c0ec838","html_url":"https://github.com/glotzerlab/jetstream2-admin","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glotzerlab%2Fjetstream2-admin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glotzerlab%2Fjetstream2-admin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glotzerlab%2Fjetstream2-admin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glotzerlab%2Fjetstream2-admin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/glotzerlab","download_url":"https://codeload.github.com/glotzerlab/jetstream2-admin/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243581094,"owners_count":20314167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-20T07:18:41.838Z","updated_at":"2025-03-14T13:13:40.509Z","avatar_url":"https://github.com/glotzerlab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jetstream2 administration scripts\n\nUse these scripts to administer the jetstream2 VMs. They provide resources to GitHub Actions to\nperform expensive build and test options more quickly.\n\n## Using the runners in GitHub Actions\n\nUse the runner `[self-hosted,jetstream2,CPU]` to select these runners for GitHub Actions jobs.\n\nThe VMs shutdown automatically after a period of inactivity. Start the runners as part of the\nworkflow with this job:\n\n```\n  start_action_runners:\n    name: Start\n    uses: glotzerlab/jetstream2-admin/.github/workflows/start.yaml@98f840ba341f72bf412100f2180d38c06e792b84 # v1.3.0\n    secrets: inherit\n```\n\nOptionally request only a certain number of runners:\n```\n  start_action_runners:\n    name: Start\n    uses: glotzerlab/jetstream2-admin/.github/workflows/start.yaml@98f840ba341f72bf412100f2180d38c06e792b84 # v1.3.0\n    secrets: inherit\n    with:\n      number: 1\n```\n\n## To administer the VMs\n\n* Create and manage VMs at: https://jetstream2.exosphere.app/exosphere/home\n* Add VMs to the inventory in `hosts.yaml`.\n\n## Configure GitHub action runners\n\nUse ansible to install GitHub Actions on the VMs::\n\n    ansible-playbook configure-runners.yaml -i hosts.yaml\n\n* `configure-runners.yaml` will ask for a token from [GitHub's add runner page](https://github.com/organizations/glotzerlab/settings/actions/runners/new?arch=x64\u0026os=linux).\n* `update-instances.yaml` will update the apt packages.\n* [View the active runners on GitHub](https://github.com/organizations/glotzerlab/settings/actions/runners).\n\n## Manage action runners\n\n* `auto-shutdown.sh` automatically shuts down instances when the actions-runner service is idle for\n  some time.\n* `shelve-action-runners.py` shelves actions-runner instances that are powered down.\n* `start-action-runners.py` starts actions-runner instances.\n\nHOOMD's GitHub Actions scripts run `start-action-runners.py` when needed. This repository runs\n`shelve-action-runners.py` periodically in GitHub Actions to shelve the instances when not needed.\nBoth of these scripts may be run locally with the proper authentication token (see\nhttps://docs.jetstream-cloud.org/ui/cli/overview/).\n\n## Check on action runner usage\n\nUse ansible to download usage data::\n\n    ansible-playbook fetch-activity-logs.yaml -i hosts.yaml\n\nThen, run the `usage-details.ipynb` notebook in Jupyter.\n\n## Style\n\nUse `pre-commit` to check for code style and formatting.\n\n## License\n\nThe jetstream2 administration scripts are available under the [3-clause BSD license](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglotzerlab%2Fjetstream2-admin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglotzerlab%2Fjetstream2-admin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglotzerlab%2Fjetstream2-admin/lists"}