WIP
This commit is contained in:
138
declare/action.yaml
Normal file
138
declare/action.yaml
Normal file
@@ -0,0 +1,138 @@
|
||||
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
|
||||
Reference in New Issue
Block a user