Currently, a single CI service is being used: travis-ci.com/filebrowser and we use our wizard script to manage our builds and releases.
{% hint style="info" %} We use semantic versioning. For more info check semver.org. {% endhint %}
- Execute
./wizard.sh -r $semver
in filebrowser/filebrowser. - When the tag is pushed, Circle will detect it and execute the following procedures:
- Run through the linters to check if the code is alright.
- Build the frontend and the backend, generating
rice-box.go
.- If the commit is not tagged, we will push the latest
filebrowser/filebrowser
docker image to hub.docker.com/r/filebrowser/filebrowser.
- If the commit is not tagged, we will push the latest
- If the commit is tagged, then:
- Build the release artifacts for all supported platforms and a new docker image (see
.goreleaser.yml
for more information). - The artifacts are published to GitHub Releases.
- The tagged docker image is published to hub.docker.com/r/filebrowser/filebrowser.
- Build the release artifacts for all supported platforms and a new docker image (see