Warp to Galaxy internal rebrand

This commit is contained in:
2026-08-27 00:29:21 -05:00
parent d72874534d
commit a69b927cc3
108 changed files with 395 additions and 2098 deletions
-19
View File
@@ -1,19 +0,0 @@
# Release Configurations
This README file documents the format of the `release_configurations.json` file located in this directory. The file defines Warp's various release channels, and provides values for the various variables that are necessary to run the `create_new_releases.yml` GitHub workflow.
At some point, we may want to replace this document with a JSON schema file (which could be used to validate the correctness of the configuration as part of PR presubmit).
## Fields
* **channel**: The channel's unique identifier
* **type**: The release cadence. At present, the valid values are "nightly" or "weekly".
* **is_prerelease**: If true, the GitHub release for this channel will be marked as prerelease.
* **is_autopush**: If true, this channel uses the "latest" keyword in `channel_versions.json` to automatically deploy new release candidates. Non-autopush channels require a manual change in order to deploy them.
* **release_base_name**: The base name of GitHub releases created for this channel.
* **release_body_text**: The body text for GitHub releases created for this channel.
* **sentry_project**: Which Sentry project should receive crash and error reports for this channel.
* **sentry_environment**: The Sentry environment that corresponds to this channel.
* **changelog_slack_channel**: The Slack channel where new changelogs will be posted whenever a new release candidates is cut.
* **gcs_cache_control_value**: The value of the cache-control response header for release DMGs.
- **IMPORTANT!!**: the value of the cache-control header _must_ be all lowercase; uppercase values will not be respected by Cloud CDN.
+2 -10
View File
@@ -5,16 +5,8 @@ on:
# External contributors (fork-based) cannot trigger this workflow.
workflow_dispatch:
inputs:
channel:
description: "Release channel (stable, preview, dev)"
required: true
type: choice
options:
- stable
- preview
- dev
release_tag:
description: "Release tag (e.g. v0.2026.05.06.09.12.stable_00)"
description: "Release tag (e.g. v0.2026.05.06.09.12.oss_00)"
required: true
type: string
attribution:
@@ -49,7 +41,7 @@ jobs:
uses: warpdotdev/oz-agent-action@ce1621abf6a8ed8afdd4e4cc994545ede8fe1c6f # main
with:
prompt: |
Generate a changelog draft for the ${{ inputs.channel }} channel, release tag ${{ inputs.release_tag }}.
Generate a changelog draft for the Galaxy OSS release, release tag ${{ inputs.release_tag }}.
Attribution mode: ${{ inputs.attribution }}
Output directory: ${{ runner.temp }}/changelog-draft
File diff suppressed because it is too large Load Diff
+13 -26
View File
@@ -1,42 +1,29 @@
# A workflow to cut a new release candidate (i.e.: .stable_01) on the current
# release branch.
#
# The channel will be automatically determined from the branch name (i.e.: when
# run on a stable_release/* branch, it will assume it is building a new "stable"
# channel candidate).
# A workflow to cut a Galaxy OSS release candidate on the OSS release branch.
name: Cut New Release Candidate
on:
workflow_dispatch:
jobs:
compute_channel:
name: Compute release channel
verify_release_branch:
name: Verify OSS release branch
runs-on: ubuntu-latest
outputs:
channel: ${{ steps.compute-channel.outputs.channel }}
steps:
- name: "Compute release channel"
id: compute-channel
- name: Verify branch
run: |
# Check whether the current branch name starts with "some_release/",
# and if so, extract the value of "some" into the CHANNEL variable,
# discarding the rest of the branch name.
CHANNEL="$(echo $GITHUB_REF_NAME | sed -r 's|^(\w+)_release/.*$|\1|')"
# If the sed expression doesn't match the input, it will write out the
# input, unmodified.
if [[ $CHANNEL == $GITHUB_REF_NAME ]]; then
echo "::error::Can only create new release candidates on a release branch" && exit 1
fi
echo "channel=$CHANNEL" >> $GITHUB_OUTPUT
case "$GITHUB_REF_NAME" in
oss_release/*) ;;
*)
echo "::error::Can only create OSS release candidates on an oss_release/* branch"
exit 1
;;
esac
shell: bash
create_release_candidate:
name: Create Release Candidate
name: Create OSS Release Candidate
uses: ./.github/workflows/create_release.yml
needs: compute_channel
with:
channel: ${{ needs.compute_channel.outputs.channel }}
needs: verify_release_branch
secrets: inherit
update_channel_versions:
+6 -61
View File
@@ -1,8 +1,4 @@
# A workflow to cut new releases (i.e.: .stable_00) for various release
# channels.
#
# Supports cutting releases for nightly release channels, weekly release
# channels, or all release channels. Releases run in parallel where able.
# A workflow to cut the Galaxy OSS release.
name: Cut New Releases
on:
@@ -11,72 +7,21 @@ on:
- cron: "0 8 * * *"
workflow_dispatch:
inputs:
targets:
type: choice
description: Which releases to build. Nightly = dev; Weekly = preview/stable.
options:
- nightly
- weekly
- all
env:
CONFIG_FILE: ".github/workflows/release_configurations.json"
# The day of the week when the weekly release should be cut. This is a value
# from 1-7, with 1 representing Monday, 2 representing Tuesday, etc.
WEEKLY_RELEASE_DAY: 3 # Cut weekly builds on Wednesdays.
jobs:
get_config:
name: Get release configuration
verify_master:
name: Verify master branch
runs-on: ubuntu-latest
env:
SCHEDULE: ${{ github.event.schedule }}
TARGETS: ${{ inputs.targets }}
outputs:
channels: ${{ steps.get-config.outputs.channels }}
steps:
- name: Check for master branch
run: |
[ $GITHUB_REF == "refs/heads/master" ] || (echo "::error::Can only cut new releases on the master branch" && exit 1)
shell: bash
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- id: get-config
run: |
# Check to see if this was auto-run as a cron job. If so, set the
# value of TARGETS based on whether the current day of the week
# is when we build weekly releases (in addition to nightly ones).
if [[ ! -z "$SCHEDULE" ]]; then
if [[ "$(date +%u)" == "$WEEKLY_RELEASE_DAY" ]]; then
TARGETS="all"
else
TARGETS="nightly"
fi
fi
echo ::echo::on
if [[ "$TARGETS" == "all" ]]; then
TARGETS="$(jq -rc '[.channels[] | .type] | unique' $CONFIG_FILE)"
else
TARGETS="[\"$TARGETS\"]"
fi
export CHANNELS="$(jq -rc '[.channels[] | select(.type | inside($ENV.TARGETS)) | .channel]' $CONFIG_FILE)"
echo "channels=$CHANNELS" >> $GITHUB_OUTPUT
# CHANNELS_INCLUDE_AUTOPUSH=$(jq -rc '[.channels[] | select(.channel | inside($ENV.CHANNELS)) | .is_autopush] | any' $CONFIG_FILE)
# echo "channels-include-autopush=$CHANNELS_INCLUDE_AUTOPUSH" >> $GITHUB_OUTPUT
echo ::echo::off
[ "$GITHUB_REF" = "refs/heads/master" ] || (echo "::error::Can only cut new releases on the master branch" && exit 1)
shell: bash
create_release:
name: Create Release
name: Create OSS Release
uses: ./.github/workflows/create_release.yml
needs: get_config
strategy:
fail-fast: false
matrix:
channel: ${{ fromJSON(needs.get_config.outputs.channels) }}
with:
channel: ${{ matrix.channel }}
needs: verify_master
secrets: inherit
update_channel_versions:
+10 -11
View File
@@ -1,12 +1,11 @@
# A workflow to delete (soft-delete) a release branch by renaming it.
#
# The branch will be renamed from its original name to deleted/{original_name}.
# For example, stable_release/v0.2025.01.01.00.00 becomes
# deleted/stable_release/v0.2025.01.01.00.00.
# For example, oss_release/v0.2025.01.01.00.00 becomes
# deleted/oss_release/v0.2025.01.01.00.00.
#
# This workflow will fail if:
# - The branch doesn't start with a release channel prefix
# (i.e.: stable_release/, preview_release/, or dev_release/)
# - The branch doesn't start with the oss_release/ prefix
# - The release has an entry in channel_versions.json (i.e., it's deployed)
name: Delete Release
@@ -14,7 +13,7 @@ on:
workflow_dispatch:
inputs:
branch:
description: 'The release branch to delete (e.g., stable_release/v0.2025.01.01.00.00.stable)'
description: 'The OSS release branch to delete (e.g., oss_release/v0.2025.01.01.00.00.oss)'
required: true
type: string
confirmation:
@@ -41,15 +40,15 @@ jobs:
run: |
BRANCH_NAME="${{ inputs.branch }}"
# Validate branch is a release branch and extract the channel
if [[ ! "$BRANCH_NAME" =~ ^(stable|preview|dev)_release/ ]]; then
echo "::error::Branch '$BRANCH_NAME' is not a release branch." && exit 1
# Validate that this is an OSS release branch.
if [[ ! "$BRANCH_NAME" =~ ^oss_release/ ]]; then
echo "::error::Branch '$BRANCH_NAME' is not an OSS release branch." && exit 1
fi
CHANNEL="${BASH_REMATCH[1]}"
CHANNEL="oss"
# Extract the version base from the branch name
# e.g., "stable_release/v0.2025.01.26.12.30.stable" -> "v0.2025.01.26.12.30.stable"
VERSION_BASE="$(echo $BRANCH_NAME | sed -r 's|^\w+_release/(.*)$|\1|')"
# e.g., "oss_release/v0.2025.01.26.12.30.oss" -> "v0.2025.01.26.12.30.oss"
VERSION_BASE="$(echo "$BRANCH_NAME" | sed -r 's|^oss_release/(.*)$|\1|')"
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
echo "new_branch_name=deleted/$BRANCH_NAME" >> $GITHUB_OUTPUT
@@ -1,44 +0,0 @@
{
"documentation": "See the README.md file in this directory.",
"channels": [
{
"channel": "dev",
"type": "nightly",
"is_prerelease": true,
"is_autopush": true,
"release_base_name": "Dev Release",
"release_body_text": "Nightly Galaxy Dev release",
"sentry_project": "warp-client-dev",
"sentry_environment": "dev_release",
"changelog_slack_channel": "#dev-beta-changelogs",
"gcs_cache_control_value": "private, max-age=604800, immutable",
"web_gcs_bucket_prefix": "warp-server-staging"
},
{
"channel": "preview",
"type": "weekly",
"is_prerelease": false,
"is_autopush": false,
"release_base_name": "Preview Release",
"release_body_text": "Galaxy Preview release",
"sentry_project": "warp-client-beta-stable",
"sentry_environment": "preview_release",
"changelog_slack_channel": "#dev-beta-changelogs",
"gcs_cache_control_value": "public, max-age=604800, immutable",
"web_gcs_bucket_prefix": "warp"
},
{
"channel": "stable",
"type": "weekly",
"is_prerelease": false,
"is_autopush": false,
"release_base_name": "Stable Release",
"release_body_text": "Galaxy Stable release",
"sentry_project": "warp-client-beta-stable",
"sentry_environment": "stable_release",
"changelog_slack_channel": "#release",
"gcs_cache_control_value": "public, max-age=604800, immutable",
"web_gcs_bucket_prefix": "warp"
}
]
}