Files
release/release/action.yaml
David Übler bf30b4defe
All checks were successful
run tests / check (push) Successful in 27s
run tests / release (push) Successful in 15s
Implementierung v0
2025-12-12 11:00:11 +01:00

89 lines
2.8 KiB
YAML

name: "release project"
description: "publish artifacte, update deployments and create gitea release"
inputs:
dry_run:
required: false
description: "do not change external state"
default: false
configure_runner_environment:
required: false
default: true
build_run:
required: false
description: "commands to run before publishing artefacts"
default: ""
sync_versions:
required: false
default: true
runs:
using: composite
steps:
- if: inputs.configure_runner_environment == 'true'
uses: https://gitea.puzzleyou.net/actions/configure-runner-environment@master
- name: declare project if neccessary
run: |
if [[ ! -z "${RELEASE_PROJECT_CURRENT_VERSION}" ]]; then
echo "already set up."
exit 0
fi
nix run ${{ github.action_path }} -- \
declare \
--release-yaml-filename ".gitea/release.yaml" \
--gitea-instance "https://gitea.puzzleyou.net" \
--release-repository-name "${{ github.repository }}" \
--release-ref-name "${{ github.ref_name }}" \
--release-run-number "${{ github.run_number }}" \
--release-commit-sha "${{ github.sha }}" \
--write-env-vars-to-filename "$GITHUB_ENV"
- name: check if already released
id: check_released
run: |
if [[ "$RELEASE_PROJECT_IS_RELEASED" == "1" ]] && [[ "$RELEASE_IS_PRERELEASE" == "0" ]]; then
echo "is_released=1" >> "$GITHUB_OUTPUT"
else
echo "is_released=0" >> "$GITHUB_OUTPUT"
fi
- name: sync versions
if: ${{ steps.check_released.outputs.is_released == '0' && inputs.sync_versions == 'true' }}
run: |
nix run ${{ github.action_path }} -- \
sync-versions \
--state "${RELEASE_ACTION_STATEFILE}"
- name: run build commands
if: ${{ steps.check_released.outputs.is_released == '0' && inputs.build_run != '' }}
run: ${{ inputs.build_run }}
- name: publish artefacts
if: ${{ steps.check_released.outputs.is_released == '0' }}
run: |
nix run ${{ github.action_path }} -- \
publish-artefacts \
--state "${RELEASE_ACTION_STATEFILE}" \
--dry-run "${{ inputs.dry_run }}"
- name: update deployments
if: ${{ steps.check_released.outputs.is_released == '0' }}
run: |
nix run ${{ github.action_path }} -- \
update-deployments \
--state "${RELEASE_ACTION_STATEFILE}" \
--dry-run "${{ inputs.dry_run }}"
- name: create release
if: ${{ steps.check_released.outputs.is_released == '0' }}
run: |
nix run ${{ github.action_path }} -- \
create-release \
--state "${RELEASE_ACTION_STATEFILE}" \
--dry-run "${{ inputs.dry_run }}"