I use vs code to develop on my mac M1. I also use homebrew to manage my packages. Use the make dep to check if required SDKs needs to be installed is installed. Otherwise it will install it using brew.
You can test the GitHub Actions workflow locally using nektos/act.
# Install act with Homebrew
brew install actTo run the full workflow locally:
act -j buildThe workflow is designed to work with both GitHub secrets and local .env files:
-
For local testing with act:
- Secrets come from your local
.envfile - The same variable names are used as in GitHub
- Secrets come from your local
-
For GitHub runs:
- Secrets come from the GitHub repository secrets
Here's how to set up your local environment:
# First, create a .env file based on .env.example
cp .env.example .env
# Edit the .env file with your secret values
vim .env # or use any editor
# Run act with the .env file
act -j build --env-file .envThe .env file supports the following variables:
SONAR_TOKEN: For SonarCloud analysisNUGET_API_KEY: For publishing NuGet packagesGITHUB_TOKEN: For GitHub API accessACT_BRANCH: To simulate specific branch (optional)ACT_EVENT: To simulate specific event type (optional)
When using --env-file .env, these variables will be available to the workflow just like GitHub secrets.
If you're using an Apple Silicon Mac, you might need to specify the container architecture:
act -j build --container-architecture linux/amd64When running with act:
- Container-based tests are skipped (they don't work reliably in a Docker-in-Docker setup)
- SonarCloud scanning is skipped
- NuGet package publishing won't actually publish (but will run the commands)
For the full test suite including container tests, it's recommended to run:
dotnet testdirectly on your development machine with Docker installed.
The project uses modern NuGet packaging with the following features:
- Package icon: The icon is stored in the
icon/fluent-docker.pngfile and included in the packages. - README files: Each project includes its README.md in the package.
- Source Link: Source code is linked to GitHub repositories for debugging.
- Versioning: Uses GitVersion for automatic versioning.