GitHub Actions
Overview
GitHub Actions is used to automate several processes for our project, including build automation, releases, ensuring code quality, and other workflows related to project management. Our workflows can be found on the va-mobile-app repo's Actions tab.
Workflows
Our workflows can curently be categorized into three types: Release and Build workflows, Code Quality workflows, and Other workflows.
Build and Release Workflows
We release a new version of the app to app stores every 2 weeks. The process of building, packaging, uploading the app, updating screenshots and release notes manually can be very time consuming. We use a combination of GitHub Actions and fastlane to automate these processes with a combination of git branching strategy, scheduled jobs, and scripting.
View Build and Release Workflows
Code Quality Workflows
Our automations also help us prevent bad code from shipping out by performing linting and running unit tests before PRs are allowed to pass, keeping our dependencies up todate, scanning for vulnerability, and automating TestRail runs.
Other Workflows
We also have other workflows to help us with more general tasks, such as getting a use added to our GitHub repo, sending Slack messages, enabling slash commands on our GitHub issues, and deploying our this documentation site.
Code Quality
- Code checks: linting and automated test runners
- Vulnerability checking with CodeQL
Automation Robot
We use our GitHub automation robot account to do any work in Actions. va-mobile-automation-robot
account credentials are located in the VA Mobile vault in 1Password.
I would recommend that you use this account in a separate browser from your every-day browser. It's easier to have the two accounts at hand if one is running in Chrome and the other is only used in say Safari.
Access in Actions is granted with Personal Access Tokens.
Local Testing
You can test GitHub Actions on your local machine using act CLI tool