Migrate all 'action' code to the new internal actions package to reduce
the number of internal packages.
Migrate the Bundle type to a separate package to avoid circular
dependencies.
Refactor code around bundle definition and download for relevant
services.
Move the deploy code to an internal package in preparation for the
support for multiple mage targets deploying services to the Flow
Platform.
Add an option to deploy a service in the foreground.
Changes:
- Most of the go code is now located in internal packages.
- Code refactored and simplified in some cases.
- Removed the 'download' mage target and integrated the download code
into the internal 'prepare' package.
- Moved all mage target code to magefile.go.
- Added missing descriptions to the mage targets.
- Updated go.mod.
Fixed:
- Created a custom function to validate the checksum of the
downloaded Woodpecker tar file.
- Specified the environment when running 'clean'.
Upgrade Forgejo to v1.20.4-1
Also the URLs for the Forgejo files is now nicely formatted so the JSON
file for the Forgejo downloads is no longer needed and has been removed.
This commit comes after provisioning the development environment.
Changes:
- templates: template the container name.
- mage: update the deploy target to deploy to specific environments.
- compose: fix network ref.
- traefik: merge all dynamic templates into one file.
- woodpecker(dockerfile): remove commands to copy entrypoint to the
docker container since the entrypoint has been removed.
- traefik: add support for using existing TLS certificates.
The mounted shared directory is no longer needed for now so it will
removed from all containers that are mounting it.
Changes for Traefik:
- Build all dynamic configurations inside the Traefik container.
- Remove the mount point for the shared directory.
- Upgrade Forgejo to v1.20.3-0
- Remove the FORGEJO_WORK_DIR environment variable in favour of the
WORK_PATH setting in app.ini
- Updated storage configuration for avatar, attachements, repo-avatar
and repo-archives
- Removed unsupported picture config. This is now managed under avatar
and repo-avatar config
- Update the Woodpecker Dockerfile.
- Add .dockerignore to limit the context.
- Add code to download the Woodpecker binary.
- Refactor the prepare target.
- Refactor the code for the Download target to reduce repeated code
and (hopefully) improve readability.
- The code now checks to see if each of the downloaded files already
exists.
- The verification will always run if enabled regardless of whether the
files are already downloaded or not.
Changes:
- Update the Dockerfile template to build the GTS image from alpine:3.17.
- Add logic to download and verify GTS packages.
- Allow the Download target to be more forgiving for a service that does not need to download any files.
- The Download target is now a dependency to the Render target for all services that aren't named 'compose'.
- Update the path to the web files in the GTS config file.
- Update the entrypoint to use the correct path of the GTS executable file.
Chores:
- Remove unused DockerImageDigest setting from GTS config.
- Mage can now render templates for all services using:
mage render all
- Mage can now deploy all services using:
mage deploy all
- Deploy now depends on Render
- If rendering Forgejo templates mage ensures that the Forgejo
binary is downloaded first.
- add downloading the forgejo binary as a dependency to rendering the
forgejo templates.
- add rendering the compose file as a dependency for rendering
non-compose targets.
We shall now use Go and Mage to manage the Flow services. The templates
have been converted to Go templates, Mage has replaced Make and the
helper bash scripts have been rewritten in Go.