From f8675c1626bfedcd800255755dc9998165b53f66 Mon Sep 17 00:00:00 2001 From: Cody Kaup Date: Thu, 17 Oct 2024 16:50:01 -0500 Subject: [PATCH] Push and test against action-next --- .github/workflows/smoke-test-action-next.yml | 33 ++++++++++++++++ package.json | 1 + scripts/releaseNext.mjs | 41 ++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100755 .github/workflows/smoke-test-action-next.yml create mode 100755 scripts/releaseNext.mjs diff --git a/.github/workflows/smoke-test-action-next.yml b/.github/workflows/smoke-test-action-next.yml new file mode 100755 index 000000000..3c301c45e --- /dev/null +++ b/.github/workflows/smoke-test-action-next.yml @@ -0,0 +1,33 @@ +name: Smoke test via action next +on: [push, merge_group] + +permissions: + contents: read + +jobs: + lint-and-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - uses: actions/setup-node@v3 + with: + node-version: lts/* + - run: corepack enable + - run: yarn + - run: yarn build + - name: Push to action-next + run: yarn run release-next + env: + GH_TOKEN: ${{ secrets.GH_TOKEN }} + - name: Run build against action-next + uses: chromaui/action-next@latest + with: + buildScriptName: build-test-storybook + exitZeroOnChanges: true + forceRebuild: true + env: + LOG_LEVEL: debug + DEBUG: chromatic-cli + CHROMATIC_PROJECT_TOKEN: ${{ secrets.SMOKE_TESTS_CHROMATIC_PROJECT_TOKEN }} diff --git a/package.json b/package.json index e8570f9ef..20b21bb82 100644 --- a/package.json +++ b/package.json @@ -81,6 +81,7 @@ "lint:js": "cross-env NODE_ENV=production eslint --cache --cache-location=.cache/eslint --report-unused-disable-directives", "lint:package": "sort-package-json", "release": "./scripts/release.mjs", + "release-next": "./scripts/releaseNext.mjs", "prepack": "clean-package", "postpack": "clean-package restore", "publish-action": "./scripts/publishAction.mjs", diff --git a/scripts/releaseNext.mjs b/scripts/releaseNext.mjs new file mode 100755 index 000000000..9a304a7ec --- /dev/null +++ b/scripts/releaseNext.mjs @@ -0,0 +1,41 @@ +#!/usr/bin/env node + +import { $ } from 'execa'; + +import { main as publishAction } from './publishAction.mjs'; + +async function main() { + const { stdout: status } = await $`git status --porcelain`; + if (status) { + console.error(`โ—๏ธ Working directory is not clean:\n${status}`); + return; + } + + await build(); + await $({ stdout: 'inherit', stderr: 'inherit' })`auto shipit`; + + await publishAction('next'); +} + +async function build() { + const { stdout: nextVersion } = await $`auto shipit --dry-run --quiet`; + + console.info(`๐Ÿ“Œ Temporarily bumping version to '${nextVersion}' for build step`); + await $`npm --no-git-tag-version version ${nextVersion}`; + + console.info('๐Ÿ“ฆ Building with new version'); + await $({ + stdio: 'inherit', + env: { + ...process.env, + SENTRY_RELEASE: nextVersion, + }, + })`yarn build`; + + console.info('๐Ÿงน Resetting changes to let `auto` do its thing'); + await $`git reset --hard`; + + console.info('โœ… Build with new version completed, ready for auto!'); +} + +main();