139 lines
4.1 KiB
YAML
139 lines
4.1 KiB
YAML
name: "declare project for release"
|
|
description: "start release configuration by declaring a project"
|
|
|
|
inputs:
|
|
version_descriptor:
|
|
required: true
|
|
|
|
configure_runner_environment:
|
|
required: false
|
|
default: true
|
|
|
|
repository:
|
|
required: false
|
|
default: "${{ github.repository }}"
|
|
|
|
artefact_type:
|
|
required: false
|
|
description: "known types: oci_image, tarball, wheel, sdist, npm"
|
|
|
|
artefact_repository:
|
|
required: false
|
|
description: "allowed for oci_image, tarbal, wheel, sdist"
|
|
default: ""
|
|
|
|
artefact_name:
|
|
required: false
|
|
description: "required for oci_image"
|
|
default: ""
|
|
|
|
artefact_filename:
|
|
required: false
|
|
description: "required for tarball, sdist"
|
|
default: ""
|
|
|
|
artefact_pattern:
|
|
required: false
|
|
description: "required for wheel"
|
|
default: ""
|
|
|
|
artefact_directory:
|
|
required: false
|
|
description: "required for npm"
|
|
default: ""
|
|
|
|
artefact_version_descriptor:
|
|
required: false
|
|
description: "allowed for all"
|
|
default: ""
|
|
|
|
deployment_type:
|
|
required: false
|
|
description: "known types: helm_release"
|
|
|
|
deployment_release_name:
|
|
required: false
|
|
description: "helm release name"
|
|
default: ""
|
|
|
|
deployment_condition:
|
|
required: false
|
|
description: |
|
|
when should the deployment be updated?
|
|
choices: always, never, pre_release_only, release_only
|
|
default: ""
|
|
|
|
deployment_image_paths:
|
|
required: false
|
|
description: "space separated list of paths to image tags in helm values"
|
|
default: ""
|
|
|
|
deployment_namespace:
|
|
required: false
|
|
description: "kubernetes namespace of the release"
|
|
default: ""
|
|
|
|
deployment_repository:
|
|
required: false
|
|
description: "helm chart registry"
|
|
default: ""
|
|
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- if: inputs.configure_runner_environment == 'true'
|
|
uses: https://gitea.puzzleyou.net/actions/configure-runner-environment@master
|
|
|
|
- name: init action state
|
|
run: |
|
|
RELEASE_ACTION_STATEFILE=$(mktemp)
|
|
echo "[release] statefile: $RELEASE_ACTION_STATEFILE"
|
|
echo "RELEASE_ACTION_STATEFILE="$RELEASE_ACTION_STATEFILE"" \
|
|
>> "$GITHUB_ENV"
|
|
|
|
- name: declare release project
|
|
run: |
|
|
# TODO get current release version
|
|
|
|
if [[ "${{ github.ref_name }}" == "master" || "${{ github.ref_name }}" == "main" ]]; then
|
|
IS_PRE_RELEASE="0"
|
|
else
|
|
IS_PRE_RELEASE="1"
|
|
fi
|
|
|
|
nix run . -- \
|
|
declare \
|
|
--state "${RELEASE_ACTION_STATEFILE}" \
|
|
--version-descriptor "${{ inputs.version_descriptor }}" \
|
|
--release-repository-name "${{ inputs.repository }}" \
|
|
--release-ref-name "${{ github.ref_name }}" \
|
|
--release-run-number "${{ github.run_number }}" \
|
|
--release-commit-sha "${{ github.sha }}" \
|
|
--is-pre-release "${IS_PRE_RELEASE}" \
|
|
|
|
if [[ ! -z "${{ inputs.artefact_type }}" ]]; then
|
|
nix run . -- \
|
|
add-artefact \
|
|
--state "${RELEASE_ACTION_STATEFILE}" \
|
|
--artefact-type "${{ inputs.artefact_type }}" \
|
|
--artefact-repository "${{ inputs.artefact_repository }}" \
|
|
--artefact-name "${{ inputs.artefact_name }}" \
|
|
--artefact-filename "${{ inputs.artefact_filename }}" \
|
|
--artefact-pattern "${{ inputs.artefact_pattern }}" \
|
|
--artefact-directory "${{ inputs.artefact_directory }}" \
|
|
--version-descriptor "${{ inputs.artefact_version_descriptor }}"
|
|
fi
|
|
|
|
if [[ ! -z "${{ inputs.deployment_type }}" ]]; then
|
|
nix run . -- \
|
|
add-deployment \
|
|
--state "${RELEASE_ACTION_STATEFILE}" \
|
|
--deployment-type "${{ inputs.deployment_type }}" \
|
|
--deployment-release-name "${{ inputs.deployment_release_name }}" \
|
|
--deployment-condition "${{ inputs.deployment_condition }}" \
|
|
--deployment-image-paths "${{ inputs.deployment_image_paths }}" \
|
|
--deployment-namespace "${{ inputs.deployment_namespace }}" \
|
|
--deployment-repository "${{ inputs.deployment_repository }}"
|
|
fi
|