# SPDX-FileCopyrightText: 2023 Johannes Loher
#
# SPDX-License-Identifier: MIT

$schema: https://raw.githubusercontent.com/woodpecker-ci/woodpecker/master/pipeline/schema/schema.json

variables:
  - &node_image node:lts
  - &enable_pnpm
    - corepack enable
    - corepack prepare pnpm@latest --activate

when:
  event: manual
  branch: ${CI_REPO_DEFAULT_BRANCH}

depends_on:
  - checks

steps:
  install:
    image: *node_image
    commands:
      - <<: *enable_pnpm
      - pnpm install --frozen-lockfile
  release:
    image: *node_image
    commands:
      - <<: *enable_pnpm
      - apt-get update
      - apt-get install --yes jq
      - export REPOSITORY_URL=$(echo "${CI_REPO_CLONE_URL}" | sed -e "s|://|://$${FORGE_TOKEN_NAME}:$${FORGE_TOKEN}@|g")
      - git remote set-url origin $${REPOSITORY_URL}
      - git config user.name woodpecker[bot]
      - git config user.email woodpecker[bot]@${CI_SYSTEM_HOST}
      - pnpm bump-version --release=${RELEASE_TYPE}
      - pnpm exec prettier --write package.json system.json
      - export RELEASE_VERSION=$(jq -r '.version' < package.json)
      - git --no-pager diff
      - git add package.json system.json
      - 'git commit -m "chore(release): $${RELEASE_VERSION}"'
      - git tag -f $${RELEASE_VERSION}
      - git push origin ${CI_COMMIT_BRANCH}
      - git push origin $${RELEASE_VERSION}
    secrets:
      - forge_token_name
      - forge_token
