Reusable GitHub Actions workflows, composite actions, and development environments for CI/CD across repositories.
- GitHub Actions Workflows - Reusable workflows for Rust, Nix, Pulumi, and Claude AI
- Pulumi Components -
@jmmaloney4/toolbox
package with reusable Pulumi components - Renovate Presets - Composable Renovate configurations for dependency management
Use our reusable workflows in your repository:
# Rust CI
jobs:
rust:
uses: jmmaloney4/toolbox/.github/workflows/rust.yml@main
with:
runs-on: ubuntu-latest
repository: ${{ github.repository }}
ref: ${{ github.ref }}
# Nix builds
jobs:
nix-build:
uses: jmmaloney4/toolbox/.github/workflows/nix.yml@main
with:
runs-on: ubuntu-latest
repository: ${{ github.repository }}
ref: ${{ github.ref }}
Install the Pulumi package:
pnpm add "git+https://github.com/jmmaloney4/toolbox.git#path:/packages/toolbox"
Use the GitHubOidcResource component:
import { GitHubOidcResource } from "@jmmaloney4/toolbox/pulumi";
const githubOidc = new GitHubOidcResource("github-oidc", {
repoOwner: "jmmaloney4",
repoName: "my-repo",
serviceAccountRoles: ["roles/storage.admin"],
limitToRef: "refs/heads/main"
});
Configure Renovate with our presets:
{
"extends": [
"github>jmmaloney4/toolbox//renovate/all.json"
]
}
This repository includes a Nix flake that provides a consistent development environment across all supported platforms.
-
Install Nix package manager:
curl -L https://nixos.org/nix/install | sh
-
Enable flakes (if not already enabled):
mkdir -p ~/.config/nix echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf
-
Install direnv (optional, but recommended):
nix-env -i direnv
-
Allow direnv in the repository:
cd nix/default direnv allow
-
The development environment will be automatically activated when you enter the directory.
- Enter a development shell:
cd nix/default nix develop
The development environment includes:
- Build Tools: Make, CMake, Ninja, pkg-config
- Version Control: Git, GitHub CLI
- Development Tools: direnv, Nix LSP
- Languages: Rust (with rust-analyzer), Go, Python 3, Node.js
- Cloud Tools: AWS CLI, Azure CLI, Google Cloud SDK, kubectl, Helm
- Utilities: jq, yq, ripgrep, fd, bat, exa, fzf, htop, tmux
To customize the development environment, modify nix/default/flake.nix
. The file is well-documented and follows Nix best practices.