This repository hosts a set of github actions we use to deploy our apps.
- iMio github actions
build/push a docker image using docker/build-push-action and optionally notify via a mattermost webhook
name | required | type | default | description |
---|---|---|---|---|
IMAGE_NAME | yes | string | Name of the image to build | |
IMAGE_TAGS | yes | string | Tags of the image to build and push (one per line) | |
REGISTRY_URL | yes | string | URL of the registry | |
REGISTRY_USERNAME | yes | string | Username to login to registry | |
REGISTRY_PASSWORD | yes | string | Password to login to registry | |
MATTERMOST_WEBHOOK_URL | no | string | Webhook URL to send notifications on Mattermost | |
PLATFORMS | yes | string | "linux/amd64" |
Platforms to build the image for |
CONTEXT | yes | string | "./" |
Build context |
DOCKERFILE | yes | string | "Dockerfile" |
Name of the Dockerfile |
BUILD_ARGS | yes | string | "" |
Build arguments to pass to the Dockerfile |
TARGET | no | string | Target stage to build |
Loop until a given url returns a 200 status-code. Can be used during deployments to test if an app is available.
name | required | type | default | description |
---|---|---|---|---|
URL | yes | string | URL to test | |
TIMEOUT | yes | integer | 5 | Timeout (in minutes) |
Run checks for Plone backend code and optionally notify via a mattermost webhook
This github action uses the code-analysis-action from the Plone organization.
name | required | type | default | description |
---|---|---|---|---|
BASE_DIR | no | string | Base directory | |
CHECK | no | string | Checks to be used | |
PATH | no | string | Path to be checked | |
LOG_LEVEL | no | string | "INFO" | Log level |
MATTERMOST_WEBHOOK_URL | no | string | Webhook URL to send notifications on Mattermost |
Build a deb package, push it on a repository and optionally notify via a mattermost webhook
name | required | type | default | description |
---|---|---|---|---|
REPOSITORY_URL | yes | string | URL of the repository | |
REPOSITORY_LOGIN | yes | string | Login for the repository | |
REPOSITORY_PASSWORD | yes | string | Passsword for the repository | |
PACKAGE_NAME | yes | string | Name of the package to build | |
PACKAGE_INSTALL_PATH | yes | string | '/usr/...' |
Path to install package |
PACKAGE_VERSION | yes | string | Package version | |
PACKAGE_DEPENDENCY | yes | string | 'passerelle' |
Package dependency |
SIGNER_KEY | yes | string | Key to sign deb package (base64 encoded) | |
SIGNER_KEY_ID | yes | string | '9D4...' |
ID of the key to sign deb package |
SIGNER_KEY_PASSPHRASE | yes | string | Passphrase to sign deb package | |
MATTERMOST_WEBHOOK_URL | no | string | Webhook URL to send notifications on Mattermost |
Release a helm chart and optionally notify via a mattermost webhook
name | required | type | default | description |
---|---|---|---|---|
HELM_VERSION | yes | string | "3.12.3" | Helm version to use |
HELM_DEPENDENCIES | no | string | Helm dependencies | |
INDEX_DIR | yes | string | "." | Index directory |
CHARTS_DIR | yes | string | "." | Charts directory |
TARGET_DIR | yes | string | "test" | Target directory to release |
APP_ID | yes | string | Github App ID | |
SECRET_KEY | yes | string | Github App Secret key | |
MATTERMOST_WEBHOOK_URL | no | string | Webhook URL to send notifications on Mattermost |
/
Lint and test a helm chart and optionally notify via a mattermost webhook
name | required | type | default | description |
---|---|---|---|---|
PYTHON_VERSION | yes | string | "3.10" | Python version to use |
HELM_VERSION | yes | string | "v3.12.3" | Helm version to use |
HELM_RELEASE | yes | string | "test" | Helm release name |
HELM_NAMESPACE | yes | string | "test" | Helm namespace name |
MATTERMOST_WEBHOOK_URL | no | string | Webhook URL to send notifications on Mattermost |
/
Send a notification on a Mattermost webhook
name | required | type | default | description |
---|---|---|---|---|
MESSAGE | yes | string | Message to send on Mattermost | |
MATTERMOST_WEBHOOK_URL | yes | string | Webhook URL to send notifications on Mattermost |
Test a Plone package and optionally notify via a mattermost webhook
name | required | type | default | description |
---|---|---|---|---|
CACHE_KEY | no | string | key to use in actions/cache | |
PYTHON_VERSION | no | string | Python version to use | |
TEST_COMMAND | yes | string | "bin/test" | Test command to run |
REQUIREMENTS_FILE | yes | string | "requirements.txt" | Requirements file |
BUILDOUT_CONFIG_FILE | yes | string | "buildout.cfg" | Buildout config file |
MATTERMOST_WEBHOOK_URL | no | string | Webhook URL to send notifications on Mattermost | |
INSTALL_DEPENDENCIES_COMMANDS | no | string | Install dependencies commands (one per line) |
Build a theme, upload it to a plone site and optionally notify on Mattermost
name | required | type | default | description |
---|---|---|---|---|
THEME_PATH | yes | string | Folder where theme files are located | |
PLONE_URL | yes | string | URL of the Plone site | |
PLONE_USERNAME | yes | string | Username to login to Plone | |
PLONE_PASSWORD | yes | string | Password to login to Plone | |
MATTERMOST_WEBHOOK_URL | no | string | Webhook URL to send notifications on Mattermost |
Trigger a repository dispatch event and optionally notify on Mattermost
name | required | type | default | description |
---|---|---|---|---|
REPOSITORY | yes | string | Repository to trigger the dispatch event | |
GIT_REFERENCE | no | string | "main" | Reference to trigger the event on |
INPUTS | no | string | "{}" | Inputs to pass to the workflow, Exemple : {"input1":"abc", "input2":"abc"} |
REPOSITORY_OWNER | yes | string | Repository owner | |
WORKFLOW_FILENAME | yes | string | Filename of the workflow to trigger | |
APP_ID | yes | string | GitHub App ID | |
APP_PRIVATE_KEY | yes | string | GitHub App private key | |
MATTERMOST_WEBHOOK_URL | no | string | Webhook URL to send notifications on Mattermost |
/
call a rundeck job and optionally notify via a mattermost webhook
name | required | type | default | description |
---|---|---|---|---|
RUNDECK_URL | yes | string | URL of the Rundeck server | |
RUNDECK_TOKEN | yes | string | Auth token to call Rundeck job | |
RUNDECK_JOB_ID | yes | string | ID of the rundeck job to call | |
RUNDECK_PARAMETERS | no | string | Parameters to pass to the Rundeck job | |
MATTERMOST_WEBHOOK_URL | no | string | Webhook URL to send notifications on Mattermost |
Add tags to a docker image and optionally notify via a mattermost webhook
name | required | type | default | description |
---|---|---|---|---|
IMAGE_NAME | yes | string | Name of the image to tag | |
IMAGE_TAG | yes | string | "staging" |
Actual tag of the image |
NEW_IMAGE_TAGS | yes | string | Tags to add to the image (one per line) | |
REGISTRY_URL | yes | string | URL of the registry | |
REGISTRY_USERNAME | yes | string | Username to login to registry | |
REGISTRY_PASSWORD | yes | string | Password to login to registry | |
MATTERMOST_WEBHOOK_URL | no | string | Webhook URL to send notifications on Mattermost |
A new release is issued when a tag beginning with v is pushed. The main release (for instance v3) will also be updated with the latest tag.
The release note is auto populated with the "[tag]" part of the CHANGELOG.md .
See CHANGELOG.md file for an example
You can push a tag this way :
git tag -a -m 'release v3.4' v3.4
git push --follow-tags