Actions

This repo provides reusable Gitea Actions as composite actions that can be referenced with uses:.

Bump Version

Creates or updates the version in package.json, commits it, creates a matching Git tag, and pushes both.

Inputs:

  • node_version: Node.js version to use. Default: 24
  • release_line: optional release line for dev builds. Format: <major>.<minor> or <major>.<minor>.<patch>. Overrides branch, PR target, inferred ancestor release branch, and package.json.
  • gitea_token: optional token used for checkout and push

Branch and tag rules:

  • main: creates release tags from the latest commit message (release/x.y.z, release/x.y, hotfix/x.y.z) or falls back to a patch bump.
  • release/<major>.<minor> or release/<major>.<minor>.<patch>: creates the next beta tag for that release base, e.g. v2.4.0-beta.3 or v2.4.1-beta.3.
  • all other branches: create a dev tag for the resolved release base using a UTC timestamp, e.g. v2.4.0-dev.20260314153045.

Dev release line resolution order:

  • inputs.release_line
  • current branch if it matches release/<major>.<minor> or release/<major>.<minor>.<patch>
  • PR target branch if it matches release/<major>.<minor> or release/<major>.<minor>.<patch>
  • newest ancestor branch from origin/release/* (for feature branches created from release branches outside PR context)
  • major.minor from package.json

If no release line can be resolved for a dev build, the action fails intentionally.

Examples:

Commit message examples on main:

  • release/2.4.0 -> v2.4.0
  • release/2.4 -> v2.4.0
  • hotfix/2.4.1 -> v2.4.1

Branch examples:

  • release/2.4 -> next v2.4.0-beta.N
  • release/v2.4.1 -> next v2.4.1-beta.N
  • feature branch in a PR to release/2.4 -> v2.4.0-dev.<UTC_TIMESTAMP>
  • feature branch created from release/v2.4.1 (without PR base) -> v2.4.1-dev.<UTC_TIMESTAMP> when the release branch tip is an ancestor
  • feature branch outside a PR with package.json version 2.4.0 -> v2.4.0-dev.<UTC_TIMESTAMP>
  • feature branch outside a PR with release_line: 2.4 -> v2.4.0-dev.<UTC_TIMESTAMP>

Example:

jobs:
  bump-version:
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - uses: tanztee/ci-cd/.github/actions/bump-version@main
        with:
          gitea_token: ${{ secrets.GITEA_TOKEN }}

Feature branch outside a PR:

jobs:
  bump-version:
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - uses: tanztee/ci-cd/.github/actions/bump-version@main
        with:
          gitea_token: ${{ secrets.GITEA_TOKEN }}
          release_line: 2.4

Build and Push Docker Image

Example:

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write
    steps:
      - uses: tanztee/ci-cd/.github/actions/build-and-push@main
        with:
          registry: ${{ secrets.REGISTRY }}
          registry_username: ${{ secrets.REGISTRY_USERNAME }}
          registry_password: ${{ secrets.REGISTRY_PASSWORD }}

Deploy Image to Kubernetes

Example:

on:
  workflow_dispatch:
    inputs:
      tag:
        description: Image tag to deploy (e.g. v1.2.3)
        required: true
        type: string

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: tanztee/ci-cd/.github/actions/deploy-k8s@main
        with:
          tag: ${{ inputs.tag }}
          namespace: oumta-dev
          kubeconfig: ${{ secrets.KUBECONFIG }}
          registry: ${{ secrets.REGISTRY }}
Description
No description provided
Readme 80 KiB