Linux & MacOS is supported out of the box for local development. Windows with WSL2 should also work fine.
While the majority of this is cross-platform, the automatically linting and some other commands are only compatible with Linux/MacOS.
-
Mage: Mage is a Go based automation alternative to Make and provides newer functionality for local Kind cluster setup, Go development tooling/linting, and more. Use aqua to automatically install.
-
Run
mage
to list all available tasks, andmage init
to setup developer tooling. Get more detail on a task, if it's available by runningmage -h init
. -
Make: Makefiles provide core automation from the original project.
- This has slowly been phased out for the more robust Mage tasks. Most of your usage won't touch Make. The only usage that might use this is the local cert based setup for debugger. This hasn't been used in years by current maintainers, as log streaming from mage/tilt UI have been primary method.
- For anything other than running the debugger, use
mage
commands which have been regularly improved and tested and move any new automation to the magefiles.
This tool will ensure all the core development tools, including Go, are installed and setup without needing to run apt
or other package managers.
Install aqua and have it configured in your path per directions.
Run aqua install
for tooling such as changie or others for the project.
Ensure your profile has this in it:
export PATH="${AQUA_ROOT_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/aquaproj-aqua}/bin:$PATH" # for those using aqua this will ensure it's in the path with all tools if loading from home
- Install Aqua
- Alternative: Manually ensure Go is installed.
- Run
aqua policy allow
to allow the customgo install
package to run. - Run
mage init
to install tooling.- Done automatically by Mage -> Install trunk (quick install script:
curl https://get.trunk.io -fsSL | bash
) - This will allow faster installs of project tooling by grabbing binaries for your platform more quickly (most of the time release binaries instead of building from source).
- Done automatically by Mage -> Install trunk (quick install script:
If you get an error with a go installation, just try once more as aqua installs in parallel and might not have finished installing Go before trying to run
go install
first.
This loads environment variables for the project automatically.
You should hook into your shell, for example with zsh: eval "$(direnv hook zsh)"
.
Other shells are supported, but this project is only tested with zsh.
Direnv: Default test values are loaded on macOS/Linux based system using direnv.
Run direnv allow
in the directory to load default env configuration for testing.