Skip to content

feat(code): file picker on quill autocomplete #672

feat(code): file picker on quill autocomplete

feat(code): file picker on quill autocomplete #672

Workflow file for this run

name: Tag PostHog Code Release
on:
schedule:
- cron: "0 1,17 * * *"
workflow_dispatch:
inputs:
quiet_retries:
type: number
default: 0
pull_request:
types: [closed]
branches:
- main
concurrency:
group: code-tag
cancel-in-progress: false
jobs:
tag:
if: >-
github.event_name == 'schedule' ||
github.event_name == 'workflow_dispatch' ||
(github.event.pull_request.merged == true &&
contains(github.event.pull_request.labels.*.name, 'Create release'))
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Get app token
id: app-token
uses: getsentry/action-github-app-token@d4b5da6c5e37703f8c3b3e43abb5705b46e159cc # v3
with:
app_id: ${{ secrets.GH_APP_ARRAY_RELEASER_APP_ID }}
private_key: ${{ secrets.GH_APP_ARRAY_RELEASER_PRIVATE_KEY }}
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0
token: ${{ steps.app-token.outputs.token }}
- name: Check quiet period
id: quiet
if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.quiet_retries != '0')
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
QUIET_RETRIES: ${{ github.event.inputs.quiet_retries || 0 }}
run: |
RETRIES="${QUIET_RETRIES}"
MAX_RETRIES=5
LAST_COMMIT_EPOCH=$(git log -1 --format=%ct HEAD)
NOW_EPOCH=$(date +%s)
AGE_MINUTES=$(( (NOW_EPOCH - LAST_COMMIT_EPOCH) / 60 ))
if [ "$AGE_MINUTES" -ge 15 ]; then
echo "Last commit to main was ${AGE_MINUTES}m ago. Quiet period met."
echo "proceed=true" >> "$GITHUB_OUTPUT"
exit 0
fi
if [ "$RETRIES" -ge "$MAX_RETRIES" ]; then
echo "Retried ${MAX_RETRIES} times and commits are still landing. Proceeding anyway."
echo "proceed=true" >> "$GITHUB_OUTPUT"
exit 0
fi
NEXT=$((RETRIES + 1))
WAIT_SECONDS=$(( (15 - AGE_MINUTES) * 60 ))
echo "Last commit was ${AGE_MINUTES}m ago (< 15m). Sleeping ${WAIT_SECONDS}s before retry ${NEXT}/${MAX_RETRIES}..."
sleep "$WAIT_SECONDS"
gh workflow run code-tag.yml -f quiet_retries="$NEXT"
echo "proceed=false" >> "$GITHUB_OUTPUT"
- name: Compute version and create tag
if: steps.quiet.outputs.proceed != 'false'
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
REPOSITORY: ${{ github.repository }}
run: |
LATEST_TAG=$(git tag --list 'v[0-9]*.[0-9]*' --sort=-v:refname | grep -E '^v[0-9]+\.[0-9]+(\.0)?$' | head -1 || true)
if [ -z "$LATEST_TAG" ]; then
echo "No version tag found. Create one with: git tag v0.15 && git push origin v0.15"
exit 1
fi
VERSION_PART=${LATEST_TAG#v}
MAJOR=$(echo "$VERSION_PART" | cut -d. -f1)
MINOR=$(echo "$VERSION_PART" | cut -d. -f2)
PATCH=$(git rev-list "$LATEST_TAG"..HEAD --count)
if [ "$PATCH" -eq 0 ]; then
echo "No commits since $LATEST_TAG. Nothing to release."
exit 0
fi
TAG="v${MAJOR}.${MINOR}.${PATCH}"
if git rev-parse "$TAG" >/dev/null 2>&1; then
echo "Tag $TAG already exists. Nothing new to release."
exit 0
fi
echo "Creating tag: $TAG (from base tag $LATEST_TAG + $PATCH commits)"
git config user.email "github-actions[bot]@users.noreply.github.com"
git config user.name "github-actions[bot]"
git tag -a "$TAG" -m "Release $TAG"
git push "https://x-access-token:${GH_TOKEN}@github.com/$REPOSITORY" "$TAG"