Warp to Galaxy internal rebrand
This commit is contained in:
@@ -1,59 +0,0 @@
|
||||
name: Get Channel Config
|
||||
description: Provides a variety of config data for the given channel type.
|
||||
inputs:
|
||||
config_file:
|
||||
description: The path to the configuration file.
|
||||
required: true
|
||||
channel:
|
||||
description: The channel to retrieve configuration data for.
|
||||
required: true
|
||||
outputs:
|
||||
channel:
|
||||
description: The channel that we're building a release for. (This is the same as the input value.)
|
||||
value: ${{ steps.get-config.outputs.channel }}
|
||||
type:
|
||||
description: The release type, either "nightly" or "weekly".
|
||||
value: ${{ steps.get-config.outputs.type }}
|
||||
is_prerelease:
|
||||
description: Whether this channel is a prerelease channel.
|
||||
value: ${{ steps.get-config.outputs.is_prerelease }}
|
||||
is_autopush:
|
||||
description: Whether new builds for this channel automatically trigger channel versions updates.
|
||||
value: ${{ steps.get-config.outputs.is_autopush }}
|
||||
release_base_name:
|
||||
description: The base name for the GitHub release, to which the release number is appended.
|
||||
value: ${{ steps.get-config.outputs.release_base_name }}
|
||||
release_body_text:
|
||||
description: The body text for the GitHub release.
|
||||
value: ${{ steps.get-config.outputs.release_body_text }}
|
||||
sentry_project:
|
||||
description: The Sentry project under which a new release should be created.
|
||||
value: ${{ steps.get-config.outputs.sentry_project }}
|
||||
sentry_environment:
|
||||
description: The environment to set for this channel's Sentry release.
|
||||
value: ${{ steps.get-config.outputs.sentry_environment }}
|
||||
changelog_slack_channel:
|
||||
description: The Slack channel where the release's changelog should be posted.
|
||||
value: ${{ steps.get-config.outputs.changelog_slack_channel }}
|
||||
gcs_cache_control_value:
|
||||
description: The Cache-Control value to set for release artifacts in Cloud Storage.
|
||||
value: ${{ steps.get-config.outputs.gcs_cache_control_value }}
|
||||
web_gcs_bucket_prefix:
|
||||
description: The GCS bucket prefix for web artifacts. (Determines if they go in a staging or prod bucket.)
|
||||
value: ${{ steps.get-config.outputs.web_gcs_bucket_prefix }}
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- id: get-config
|
||||
env:
|
||||
CONFIG_FILE: ${{ inputs.config_file }}
|
||||
CHANNEL: ${{ inputs.channel }}
|
||||
run: |
|
||||
echo ::echo::on
|
||||
jq -e '.channels[] | select(.channel == $ENV.CHANNEL)' $CONFIG_FILE > /dev/null
|
||||
# Fail if the given channel is not found in the JSON release configuration.
|
||||
[ $? -eq 0 ] || (echo ::error::"Channel $CHANNEL not found in release configuration" && exit 1)
|
||||
jq -rc '.channels[] | select(.channel == $ENV.CHANNEL) | to_entries | map("\(.key)=\(.value)")[]' $CONFIG_FILE >> $GITHUB_OUTPUT
|
||||
echo ::echo::off
|
||||
shell: bash
|
||||
@@ -15,8 +15,6 @@ inputs:
|
||||
description: If true, dependencies needed for building release artifacts will be installed (e.g., cargo-about for license generation).
|
||||
cache_key:
|
||||
description: If set, the cache key to use. If unset, the cache key will be derived from the target OS.
|
||||
ssh_key:
|
||||
description: SSH private key used to clone the private warp-channel-config repository. Only consumed when running in warpdotdev/warp-internal.
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
@@ -92,15 +90,6 @@ runs:
|
||||
env:
|
||||
BINSTALL_VERSION: 1.14.4
|
||||
|
||||
# Load the SSH key needed to clone the private warp-channel-config repo. Only
|
||||
# run in warpdotdev/warp-internal; elsewhere (mirrors, fork PRs) this is a no-op
|
||||
# and install_channel_config falls back gracefully.
|
||||
- name: Setup SSH keys for warp-channel-config
|
||||
if: ${{ github.repository == 'warpdotdev/warp-internal' && inputs.ssh_key != '' }}
|
||||
uses: webfactory/ssh-agent@e83874834305fe9a4a2997156cb26c5de65a8555 # v0.10.0
|
||||
with:
|
||||
ssh-private-key: ${{ inputs.ssh_key }}
|
||||
|
||||
- uses: maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1.7.0
|
||||
if: ${{ inputs.target_os == 'macos' && inputs.is_self_hosted != 'true' }}
|
||||
with:
|
||||
@@ -111,9 +100,6 @@ runs:
|
||||
run: |
|
||||
cd "${{ steps.repo-root.outputs.path }}"
|
||||
if ${{ inputs.target_os == 'macos' }}; then
|
||||
# Try to install warp-channel-config but don't complain if it cannot
|
||||
# be installed.
|
||||
./script/install_channel_config || true
|
||||
if ${{ inputs.install_release_deps == 'true' }}; then
|
||||
./script/install_cargo_release_deps
|
||||
else
|
||||
|
||||
@@ -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.
|
||||
@@ -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
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user