-
-
Notifications
You must be signed in to change notification settings - Fork 9
@danielridgebot DevOps Wiki
Meet Daniel.
Daniel Ridge (@danielridgebot) is a bot, and its repo check-ghpages-versions' current function for hackforla/ops is to automatically check the dependencies for the Docker image created from ghpages-docker and used by Hack for LA. (For more details, see ghpages-docker's README & wiki).
ghpages-dockeris designed to mimic the GitHub Pages environment on a local server, and is thus pegged to the dependency versions used by GitHub Pages. When those change, theghpages-dockerDockerfileneeds to be updated, and a new image built from it and pushed to Docker Hub.
@danielridgebot's workflows in repo check-ghpages-versions periodically
- check those dependencies and,
- when GitHub Pages upgrades to a new version, open an issue in the hackforla/ops repo.
Specifically, there are two dependencies that need to be checked: Ruby and the
github-pagesRuby gem*. There is one workflow for each, entitled check-ghpages-version.yml and check-ruby-version.yml, respectively. The code for both is nearly identical...
*A gem for Ruby is a package that provides a standard format for distributing Ruby programs and libraries. (References: RubyGems Wiki, What is a gem?)
Having a bot @danielridgebot
- automates the process of checking the dependencies (1) Ruby and (2) the github-pages Ruby gem and saves manual labor from engineers
- ensures the
ghpages-dockerare up-to-date (in regards to the above 2 dependencies).
In Daniel's check-ghpages-versions/.github/workflows/ repo subdirectory link,
-
check-gh-pages-version.yml- workflow runs every day at 1200 UTC
- reads the official GitHub Pages' current version** of
github-pagesgem - reads the version number currently being used by
ghpages-docker, stored inrelease versions/github-pages-gem.txt - compares the 2 version numbers:
- if there is a change, the workflow opens an issue in
hackforla/opsnotifying the DevOps team that an update is required. - writes the new version number to
github-pages-gem.txtand commits the change.***
- if there is a change, the workflow opens an issue in
- added
keepalive-workflowto keep workflow active if repository is inactive for more than 60 days
-
check-ruby-version.yml- workflow is triggered to run upon the completion of
check-gh-pages-versionworkflow - reads the official GitHub Pages' current version** of
Ruby - reads the version number currently being used by
ghpages-docker, stored inrelease versions/ruby.txt- if there is a change, the workflow opens an issue in
hackforla/opsnotifying the DevOps team that an update is required. - writes the new version number to
ruby.txtand commits the change.***
- if there is a change, the workflow opens an issue in
- workflow is triggered to run upon the completion of
**GitHub's dependency list with release versions: https://pages.github.com/versions.json
***Note that this means that by the time an issue is opened, the version number in the relevant text file already reflects the new version used by GitHub Pages, not the version currently used in ghpages-docker.
- the Websites team that uses the
ghpages-docker.
If you are interested in contributing, please reach out to @ericvennemeyer and/or @hackforla's Ops or Website project manager. Thank you for being interested in improving the package!
- @danielridgebot
check-ghpages-versionsghpages-dockerghpages-docker's READMEghpages-docker's Wiki- Follow the steps here, How do you update ghpages-docker, for more details on to resolve issues opened by Daniel.
YAML
Docker
No input is required, although the issues created by Daniel (Output) is currently expected to be closed manually by a human. Follow the steps here, How do you update ghpages-docker, for more details on to resolve issues opened by Daniel.
The workflow opens an issue in hackforla/ops notifying the DevOps team that an update of either github-pages-gem or Ruby is required.
- figure out why it stopped creating new issues (last opened issue was Oct 6, 2022)
- Feature request: upgrade to operation of bot, more instructions in the issues it creates
- Update this wiki