WIP
All checks were successful
run tests / check (push) Successful in 15s
run tests / release (push) Successful in 13s

This commit is contained in:
2025-12-05 21:05:59 +01:00
parent bd50bef4ad
commit 9b3653c15d
32 changed files with 1388 additions and 0 deletions

138
declare/action.yaml Normal file
View 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