mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
Merge pull request #4325 from Infisical/feat/releaseChannels
Add Release Channels with nightly
This commit is contained in:
83
.github/workflows/nightly-tag-generation.yml
vendored
Normal file
83
.github/workflows/nightly-tag-generation.yml
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
name: Generate Nightly Tag
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *' # Run daily at midnight UTC
|
||||
workflow_dispatch: # Allow manual triggering for testing
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
create-nightly-tag:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # Fetch all history for tags
|
||||
|
||||
- name: Configure Git
|
||||
run: |
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Generate nightly tag
|
||||
run: |
|
||||
# Get the latest infisical production tag
|
||||
LATEST_STABLE_TAG=$(git tag --list | grep "^v[0-9].*$" | sort -V | tail -n1)
|
||||
|
||||
if [ -z "$LATEST_STABLE_TAG" ]; then
|
||||
echo "No infisical production tags found, using v0.1.0"
|
||||
LATEST_STABLE_TAG="v0.1.0"
|
||||
fi
|
||||
|
||||
echo "Latest production tag: $LATEST_STABLE_TAG"
|
||||
|
||||
# Get current date in YYYYMMDD format
|
||||
DATE=$(date +%Y%m%d)
|
||||
|
||||
# Base nightly tag name
|
||||
BASE_TAG="${LATEST_STABLE_TAG}-nightly-${DATE}"
|
||||
|
||||
# Check if this exact tag already exists
|
||||
if git tag --list | grep -q "^${BASE_TAG}$"; then
|
||||
echo "Base tag ${BASE_TAG} already exists, finding next increment"
|
||||
|
||||
# Find existing tags for this date and get the highest increment
|
||||
EXISTING_TAGS=$(git tag --list | grep "^${BASE_TAG}" | grep -E '\.[0-9]+$' || true)
|
||||
|
||||
if [ -z "$EXISTING_TAGS" ]; then
|
||||
# No incremental tags exist, create .1
|
||||
NIGHTLY_TAG="${BASE_TAG}.1"
|
||||
else
|
||||
# Find the highest increment
|
||||
HIGHEST_INCREMENT=$(echo "$EXISTING_TAGS" | sed "s|^${BASE_TAG}\.||" | sort -n | tail -n1)
|
||||
NEXT_INCREMENT=$((HIGHEST_INCREMENT + 1))
|
||||
NIGHTLY_TAG="${BASE_TAG}.${NEXT_INCREMENT}"
|
||||
fi
|
||||
else
|
||||
# Base tag doesn't exist, use it
|
||||
NIGHTLY_TAG="$BASE_TAG"
|
||||
fi
|
||||
|
||||
echo "Generated nightly tag: $NIGHTLY_TAG"
|
||||
echo "NIGHTLY_TAG=$NIGHTLY_TAG" >> $GITHUB_ENV
|
||||
echo "LATEST_PRODUCTION_TAG=$LATEST_STABLE_TAG" >> $GITHUB_ENV
|
||||
|
||||
git tag "$NIGHTLY_TAG"
|
||||
git push origin "$NIGHTLY_TAG"
|
||||
echo "✅ Created and pushed nightly tag: $NIGHTLY_TAG"
|
||||
|
||||
- name: Create GitHub Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ env.NIGHTLY_TAG }}
|
||||
name: ${{ env.NIGHTLY_TAG }}
|
||||
draft: false
|
||||
prerelease: true
|
||||
generate_release_notes: true
|
||||
make_latest: false
|
||||
@@ -303,6 +303,7 @@
|
||||
},
|
||||
"self-hosting/guides/upgrading-infisical",
|
||||
"self-hosting/configuration/envars",
|
||||
"self-hosting/guides/releases",
|
||||
"self-hosting/configuration/requirements",
|
||||
{
|
||||
"group": "Guides",
|
||||
|
||||
66
docs/self-hosting/guides/releases.mdx
Normal file
66
docs/self-hosting/guides/releases.mdx
Normal file
@@ -0,0 +1,66 @@
|
||||
---
|
||||
title: "Release Channels"
|
||||
description: "Learn how to configure your deployment for different release schedules."
|
||||
---
|
||||
|
||||
Infisical uses rolling release channels to deliver new features, security fixes, and improvements with different update frequencies.
|
||||
This system allows you to balance getting the latest features with maintaining stability in your deployment environment.
|
||||
|
||||
## What are release channels?
|
||||
|
||||
Release channels define different schedules under which Infisical makes new releases available for you to deploy.
|
||||
Each channel operates on its own cadence, allowing you to choose how frequently you want to update your self-hosted deployment while balancing access to the latest features with your organization's stability requirements.
|
||||
|
||||
|
||||
## Available Channels
|
||||
|
||||
Infisical provides two distinct release channels with different update frequencies and stability profiles.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Nightly Channel">
|
||||
- **Update Frequency**: Daily builds during weekdays (Monday-Friday)
|
||||
- **Version Tags**: `vX.Y.Z-nightly-YYYYMMDD` (e.g., `v0.146.0-nightly-20250423`)
|
||||
- **Multiple Daily Builds**: If multiple nightly builds are created on the same day, they are numbered incrementally: `vX.Y.Z-nightly-YYYYMMDD.1`, `vX.Y.Z-nightly-YYYYMMDD.2`, etc.
|
||||
- **Stability**: Latest features with standard CI/CD testing
|
||||
- **Release Process**: Built from main branch after all automated tests pass
|
||||
- **Intended Audience**: Development environments & early adopters
|
||||
|
||||
**Best for:**
|
||||
- Organizations with flexible change management
|
||||
- Teams that want to test new features before they are made available via stable release channel
|
||||
|
||||
**Characteristics:**
|
||||
- Access to latest features immediately
|
||||
- Faster security patch delivery
|
||||
- Higher update frequency (daily)
|
||||
</Tab>
|
||||
<Tab title="Stable Channel">
|
||||
- **Update Frequency**: Monthly releases (typically 1st Tuesday of each month)
|
||||
- **Version Tags**: `vX.Y.Z` (e.g., `v0.145.0`, `v0.146.0`)
|
||||
- **Stability**: Both code tested and production-proven releases
|
||||
- **Release Process**: Features validated through nightly channel for 30+ days
|
||||
- **Intended Audience**: Production environments, enterprise teams prioritizing stability
|
||||
|
||||
**Best for:**
|
||||
- Enterprise environments with limited change windows
|
||||
- Organizations requiring predictable release cycles
|
||||
- Teams prioritizing stability and long-term support
|
||||
|
||||
**Characteristics:**
|
||||
- Predictable monthly schedule
|
||||
- Extensive testing and validation
|
||||
- Production-proven features
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<Warning>
|
||||
Schedule Note: Target dates are approximate and subject to change based on critical issues, security updates, or maintenance requirements.
|
||||
</Warning>
|
||||
|
||||
## Staying up to date
|
||||
|
||||
Track what features are available in each version across different sources:
|
||||
|
||||
- **Released versions**: View detailed changelogs, new features, and breaking changes in our [GitHub Releases](https://github.com/Infisical/infisical/releases)
|
||||
- **Docker Image Versions**: Browse available container images and tags on [Docker Hub](https://hub.docker.com/r/infisical/infisical)
|
||||
- **Linux Package Releases**: Access downloadable packages and version history on our [Linux releases page](https://cloudsmith.io/~infisical/repos/infisical-core/packages/)
|
||||
Reference in New Issue
Block a user