Files
calcom-docker/.github/workflows/create-release-from-commit.yaml
noah 2fb5ba6951
Some checks failed
Build and push image to DockerHub / build (push) Has been cancelled
Update Calendso / Submodules Sync (push) Successful in 45s
Add .github/workflows/create-release-from-commit.yaml
2025-06-20 15:06:01 +00:00

64 lines
2.4 KiB
YAML

name: "Create Release Tag"
on:
workflow_dispatch:
inputs:
version:
description: 'The new release tag to create (e.g., v3.8.1)'
required: true
type: string
commit_sha:
description: 'The short commit SHA from the calcom submodule to use for this release'
required: true
type: string
jobs:
release:
name: "Tag Release"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout main branch to get starting point"
uses: "actions/checkout@v4"
with:
token: ${{ secrets.TOKEN_GITEA }}
# We check out main, but will create the release commit off of it
# without modifying the branch itself.
ref: 'main'
submodules: true
- name: "Create Release Commit and Tag"
run: |
# Configure git user for the commit
git config user.email "actions@gitea.local"
git config user.name "Gitea Actions"
echo "Updating submodule to commit ${{ inputs.commit_sha }}..."
# Navigate into the submodule, fetch latest history, and check out the specific commit.
# This modifies the submodule's checked-out version in the working directory.
cd calcom
git fetch origin
git checkout ${{ inputs.commit_sha }}
cd ..
# Stage the change to the submodule pointer.
git add calcom
# Create a NEW commit. This commit is NOT on the main branch.
# It's a "dangling" commit that only HEAD is pointing to at this moment.
# The parent of this new commit is the latest commit from 'main'.
git commit -m "release: Version ${{ inputs.version }} with calcom at ${{ inputs.commit_sha }}"
# Get the full SHA of the new commit we just created.
NEW_COMMIT_SHA=$(git rev-parse HEAD)
echo "Created new release commit: $NEW_COMMIT_SHA"
echo "Creating and pushing tag ${{ inputs.version }}..."
# Create an annotated tag pointing directly at our new, branchless commit.
git tag -a "${{ inputs.version }}" -m "Release ${{ inputs.version }}" $NEW_COMMIT_SHA
# Push ONLY the new tag to the repository. Git will automatically send
# the required commit object ($NEW_COMMIT_SHA) along with the tag.
git push origin "${{ inputs.version }}"