Shared GitHub Actions for personal projects.
Send a formatted Discord embed notification with retry logic. Generic — works for any event (builds, releases, monitoring alerts, etc.).
Check an Android app's targetSdkVersion against Google Play compliance requirements. Outputs status, color, and pre-built Discord fields.
Check current Gradle, AGP, and Kotlin versions against the latest releases. Outputs status, color, and pre-built Discord fields.
Scan build.gradle.kts files for outdated Maven dependencies, classified by severity (major/minor/patch). Outputs counts, color, and pre-built Discord fields.
Run Android instrumented tests on an emulator (requires Linux runner with KVM). Uploads the HTML report as an artifact.
Capture Google Play screenshots with Fastlane screengrab on an Android emulator.
Authenticate to Google Cloud with Workload Identity Federation and run a Fastlane Play deploy lane.
Orchestrates all Android health checks and produces a combined weekly digest with an overall health score. Designed to be paired with discord-notify.
Run Android unit tests and upload the report as an artifact.
Decode a keystore, build a signed release AAB, and verify it.
Install React Native dependencies, decode a keystore, build a signed Android release AAB, and verify it.
Publish a signed AAB to a Google Play track using a service account.
Calculate the next semantic version from git tags, auto-generate release notes from commits since the last tag, and output an Android-compatible version code. Generic — works for any repo using vX.Y.Z tags.
Install dependencies, run tests, and build a static site using npm scripts. Outputs the absolute path to the build directory for use by downstream steps or actions.
Sync a pre-built static site to an S3 bucket and invalidate a CloudFront distribution cache. Applies separate cache-control headers for HTML files and static assets.
Deploy (or update) a CloudFormation stack that provisions an S3 bucket for static website hosting. Outputs the bucket name and regional domain name for use by downstream steps such as a CloudFront deployment.
Deploy (or update) a CloudFormation stack that provisions a CloudFront distribution backed by an S3 origin. Outputs the distribution domain name and distribution ID.
Reference actions from this repo using:
uses: jameselsey/actions/discord-notify@main
uses: jameselsey/actions/android-api-level-check@main
uses: jameselsey/actions/android-build-tools-check@main
uses: jameselsey/actions/android-dependency-check@main
uses: jameselsey/actions/android-weekly-digest@main
uses: jameselsey/actions/android-unit-test@main
uses: jameselsey/actions/android-fastlane-screengrab@main
uses: jameselsey/actions/android-fastlane-play-deploy@main
uses: jameselsey/actions/android-sign-and-build@main
uses: jameselsey/actions/react-native-android-sign-and-build@main
uses: jameselsey/actions/android-publish-to-play@main
uses: jameselsey/actions/semver-release-notes@main
uses: jameselsey/actions/static-site-build-test@main
uses: jameselsey/actions/aws-static-site-deploy@main
uses: jameselsey/actions/cfn-deploy-s3-static-bucket@main
uses: jameselsey/actions/cfn-deploy-cloudfront@mainEach calling repository controls its own schedule and configuration (e.g. monitoring-config.json).