@@ -1,6 +1,9 @@
# Generated from xtask::workflows::after_release
# Rebuild with `cargo xtask workflows`.
name: after_release
+env:
+ TAG_NAME: ${{ github.event.release.tag_name || inputs.tag_name }}
+ IS_PRERELEASE: ${{ github.event.release.prerelease || inputs.prerelease }}
on:
release:
types:
@@ -11,6 +14,10 @@ on:
description: tag_name
required: true
type: string
+ prerelease:
+ description: prerelease
+ required: true
+ type: boolean
body:
description: body
type: string
@@ -21,7 +28,7 @@ jobs:
runs-on: namespace-profile-2x4-ubuntu-2404
steps:
- name: after_release::rebuild_releases_page::refresh_cloud_releases
- run: curl -fX POST https://cloud.zed.dev/releases/refresh?expect_tag=${{ github.event.release.tag_name || inputs.tag_name }}
+ run: curl -fX POST https://cloud.zed.dev/releases/refresh?expect_tag=$TAG_NAME
- name: steps::checkout_repo
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd
with:
@@ -40,8 +47,8 @@ jobs:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
with:
- channel: ${{ endsWith(github.event.release.tag_name || inputs.tag_name, '-pre') && 'preview' || 'stable' }}
- checkout_ref: ${{ github.event.release.tag_name || inputs.tag_name }}
+ channel: ${{ env.IS_PRERELEASE == 'true' && 'preview' || 'stable' }}
+ checkout_ref: ${{ env.TAG_NAME }}
post_to_discord:
needs:
- rebuild_releases_page
@@ -51,7 +58,7 @@ jobs:
- id: get-release-url
name: after_release::post_to_discord::get_release_url
run: |
- if [ "${{ endsWith(github.event.release.tag_name || inputs.tag_name, '-pre') }}" == "true" ]; then
+ if [ "$IS_PRERELEASE" == "true" ]; then
URL="https://zed.dev/releases/preview"
else
URL="https://zed.dev/releases/stable"
@@ -63,7 +70,7 @@ jobs:
uses: 2428392/gh-truncate-string-action@b3ff790d21cf42af3ca7579146eedb93c8fb0757
with:
stringToTruncate: |
- 📣 Zed [${{ github.event.release.tag_name || inputs.tag_name }}](<${{ steps.get-release-url.outputs.URL }}>) was just released!
+ 📣 Zed [${{ env.TAG_NAME }}](<${{ steps.get-release-url.outputs.URL }}>) was just released!
${{ github.event.release.body || inputs.body }}
maxLength: 2000
@@ -98,7 +105,7 @@ jobs:
- id: set-package-name
name: after_release::publish_winget::set_package_name
run: |
- if ("${{ endsWith(github.event.release.tag_name || inputs.tag_name, '-pre') }}" -eq "true") {
+ if ($env:IS_PRERELEASE -eq "true") {
$PACKAGE_NAME = "ZedIndustries.Zed.Preview"
} else {
$PACKAGE_NAME = "ZedIndustries.Zed"
@@ -110,7 +117,7 @@ jobs:
uses: vedantmgoyal9/winget-releaser@19e706d4c9121098010096f9c495a70a7518b30f
with:
identifier: ${{ steps.set-package-name.outputs.PACKAGE_NAME }}
- release-tag: ${{ github.event.release.tag_name || inputs.tag_name }}
+ release-tag: ${{ env.TAG_NAME }}
max-versions-to-keep: 5
token: ${{ secrets.WINGET_TOKEN }}
create_sentry_release:
@@ -7,14 +7,15 @@ use crate::tasks::workflows::{
vars::{self, StepOutput, WorkflowInput},
};
-const TAG_NAME: &str = "${{ github.event.release.tag_name || inputs.tag_name }}";
-const IS_PRERELEASE: &str =
- "${{ endsWith(github.event.release.tag_name || inputs.tag_name, '-pre') }}";
+const TAG_NAME_ENV: &str = "${{ github.event.release.tag_name || inputs.tag_name }}";
+const IS_PRERELEASE_ENV: &str = "${{ github.event.release.prerelease || inputs.prerelease }}";
+const TAG_NAME: &str = "${{ env.TAG_NAME }}";
const RELEASE_BODY: &str = "${{ github.event.release.body || inputs.body }}";
-const DOCS_CHANNEL: &str = "${{ endsWith(github.event.release.tag_name || inputs.tag_name, '-pre') && 'preview' || 'stable' }}";
+const DOCS_CHANNEL: &str = "${{ env.IS_PRERELEASE == 'true' && 'preview' || 'stable' }}";
pub fn after_release() -> Workflow {
let tag_name = WorkflowInput::string("tag_name", None);
+ let prerelease = WorkflowInput::bool("prerelease", None);
let body = WorkflowInput::string("body", Some(String::new()));
let refresh_zed_dev = rebuild_releases_page();
@@ -36,11 +37,14 @@ pub fn after_release() -> Workflow {
};
named::workflow()
+ .add_env(("TAG_NAME", TAG_NAME_ENV))
+ .add_env(("IS_PRERELEASE", IS_PRERELEASE_ENV))
.on(Event::default()
.release(Release::default().types(vec![ReleaseType::Published]))
.workflow_dispatch(
WorkflowDispatch::default()
.add_input(tag_name.name, tag_name.input())
+ .add_input(prerelease.name, prerelease.input())
.add_input(body.name, body.input()),
))
.add_job(refresh_zed_dev.name, refresh_zed_dev.job)
@@ -91,9 +95,7 @@ fn deploy_docs() -> NamedJob<UsesJob> {
fn rebuild_releases_page() -> NamedJob {
fn refresh_cloud_releases() -> Step<Run> {
- named::bash(format!(
- "curl -fX POST https://cloud.zed.dev/releases/refresh?expect_tag={TAG_NAME}"
- ))
+ named::bash("curl -fX POST https://cloud.zed.dev/releases/refresh?expect_tag=$TAG_NAME")
}
fn redeploy_zed_dev() -> Step<Run> {
@@ -112,16 +114,16 @@ fn rebuild_releases_page() -> NamedJob {
fn post_to_discord(deps: &[&NamedJob]) -> NamedJob {
fn get_release_url() -> Step<Run> {
- named::bash(format!(
- r#"if [ "{IS_PRERELEASE}" == "true" ]; then
+ named::bash(
+ r#"if [ "$IS_PRERELEASE" == "true" ]; then
URL="https://zed.dev/releases/preview"
else
URL="https://zed.dev/releases/stable"
fi
echo "URL=$URL" >> "$GITHUB_OUTPUT"
-"#
- ))
+"#,
+ )
.id("get-release-url")
}
@@ -182,17 +184,15 @@ fn publish_winget() -> NamedJob {
}
fn set_package_name() -> (Step<Run>, StepOutput) {
- let script = format!(
- r#"if ("{IS_PRERELEASE}" -eq "true") {{
+ let script = r#"if ($env:IS_PRERELEASE -eq "true") {
$PACKAGE_NAME = "ZedIndustries.Zed.Preview"
-}} else {{
+} else {
$PACKAGE_NAME = "ZedIndustries.Zed"
-}}
+}
echo "PACKAGE_NAME=$PACKAGE_NAME" >> $env:GITHUB_OUTPUT
-"#
- );
- let step = named::pwsh(&script).id("set-package-name");
+"#;
+ let step = named::pwsh(script).id("set-package-name");
let output = StepOutput::new(&step, "PACKAGE_NAME");
(step, output)