diff --git a/.deployment.config.json b/.deployment.config.json index 592bd08afb9..d48def71665 100644 --- a/.deployment.config.json +++ b/.deployment.config.json @@ -190,8 +190,7 @@ "no_endpoint": true }, "package_rollout": { - "only_consider_changesets_after": "b244fe702d8e96d016a52715e92c8131acfde3ba", - "disabled": $[STOP_AT_DEV] + "only_consider_changesets_after": "b244fe702d8e96d016a52715e92c8131acfde3ba" }, "deployment_config_version": 7 } diff --git a/.github/workflows/masterbot.yml b/.github/workflows/masterbot.yml index e41bb8fd1da..63ea20a1555 100644 --- a/.github/workflows/masterbot.yml +++ b/.github/workflows/masterbot.yml @@ -3,7 +3,6 @@ on: push: branches: - master - - 'prerelease/**' jobs: build: name: 'Build' diff --git a/Jenkinsfile b/Jenkinsfile index 3faf3493cdf..47c15776e84 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,17 +1,10 @@ -def parseSemanticVersion(String version) { - def semanticVersionRegex = /^(((([0-9]+)\.[0-9]+)\.[0-9]+)(?:\-.+)?)$/ - def (_, prerelease, patch, minor, major) = (version =~ semanticVersionRegex)[0] - return [major, minor, patch, prerelease] -} - node('heavy && linux && docker') { checkout scm def tag = sh(script: "git tag --contains", returnStdout: true).trim() def isBump = !!tag - def isOnReleaseBranch = env.BRANCH_NAME == 'master' - def isOnPrereleaseBranch = env.BRANCH_NAME.startsWith('prerelease/') + def isMaster = env.BRANCH_NAME == 'master' - if (!isOnReleaseBranch && !isOnPrereleaseBranch) { + if (!isMaster) { return } @@ -39,14 +32,12 @@ node('heavy && linux && docker') { sh 'git clean -f' } - if (isOnReleaseBranch) { - withDockerContainer(image: 'node:16', args: '-u=root -e HOME=/tmp -e NPM_CONFIG_PREFIX=/tmp/.npm') { - stage('Npm publish') { - withCredentials([ - string(credentialsId: 'NPM_TOKEN', variable: 'NPM_TOKEN')]) { - sh "echo //registry.npmjs.org/:_authToken=${NPM_TOKEN} > ~/.npmrc" - sh 'npm run npm:publish:alpha || true' - } + withDockerContainer(image: 'node:16', args: '-u=root -e HOME=/tmp -e NPM_CONFIG_PREFIX=/tmp/.npm') { + stage('Npm publish') { + withCredentials([ + string(credentialsId: 'NPM_TOKEN', variable: 'NPM_TOKEN')]) { + sh "echo //registry.npmjs.org/:_authToken=${NPM_TOKEN} > ~/.npmrc" + sh 'npm run npm:publish:alpha || true' } } } @@ -57,22 +48,23 @@ node('heavy && linux && docker') { headless = readJSON file: 'packages/headless/package.json' atomic = readJSON file: 'packages/atomic/package.json' atomicReact = readJSON file: 'packages/atomic-react/package.json' + semanticVersionRegex = /^([^\.]*)\.[^\.]*/ + + (headlessMinor, headlessMajor) = (headless.version =~ semanticVersionRegex)[0] + (atomicMinor, atomicMajor) = (atomic.version =~ semanticVersionRegex)[0] + (atomicReactMinor, atomicReactMajor) = (atomicReact.version =~ semanticVersionRegex)[0] - (headlessMajor, headlessMinor, headlessPatch) = parseSemanticVersion(headless.version) - (atomicMajor, atomicMinor, atomicPatch) = parseSemanticVersion(atomic.version) - (atomicReactMajor, atomicReactMinor, atomicReactPatch) = parseSemanticVersion(atomicReact) sh "deployment-package package create --with-deploy \ --resolve HEADLESS_MAJOR_VERSION=${headlessMajor} \ --resolve HEADLESS_MINOR_VERSION=${headlessMinor} \ - --resolve HEADLESS_PATCH_VERSION=${headlessPatch} \ + --resolve HEADLESS_PATCH_VERSION=${headless.version} \ --resolve ATOMIC_MAJOR_VERSION=${atomicMajor} \ --resolve ATOMIC_MINOR_VERSION=${atomicMinor} \ - --resolve ATOMIC_PATCH_VERSION=${atomicPatch} \ + --resolve ATOMIC_PATCH_VERSION=${atomic.version} \ --resolve ATOMIC_REACT_MAJOR_VERSION=${atomicReactMajor} \ --resolve ATOMIC_REACT_MINOR_VERSION=${atomicReactMinor} \ - --resolve ATOMIC_REACT_PATCH_VERSION=${atomicReactPatch} \ - --resolve STOP_AT_DEV=${!isOnReleaseBranch} \ + --resolve ATOMIC_REACT_PATCH_VERSION=${atomicReact.version} \ || true" } } diff --git a/scripts/deploy/bump-version.mjs b/scripts/deploy/bump-version.mjs index dbd21be0e09..34be4d8d61d 100644 --- a/scripts/deploy/bump-version.mjs +++ b/scripts/deploy/bump-version.mjs @@ -36,9 +36,13 @@ async function bumpVersionAndPush() { async function main() { try { - if ((await getHowManyCommitsBehind()) !== 0) { + const buildCommitHash = await getHeadCommitHash(); + await checkoutLatestMaster(); + const masterCommitHash = await getHeadCommitHash(); + + if (buildCommitHash !== masterCommitHash) { console.log( - 'Build commit does not match latest commit. Skipping version bump.' + 'Build commit does not match latest master commit. Skipping version bump.' ); return; } diff --git a/scripts/deploy/invalidate-cloudfront.mjs b/scripts/deploy/invalidate-cloudfront.mjs index d8bf2176273..37730edbc52 100644 --- a/scripts/deploy/invalidate-cloudfront.mjs +++ b/scripts/deploy/invalidate-cloudfront.mjs @@ -1,19 +1,21 @@ import {CloudFront} from 'aws-sdk'; import {resolve} from 'path'; -import {getPackageFromPath, workspacesRoot} from '../packages.mjs'; +import {getPackageFromPath} from '../packages.mjs'; const cloudfront = new CloudFront(); async function getMajorVersion(dir) { const {version} = getPackageFromPath( - resolve(workspacesRoot, 'packages', dir, 'package.json') + resolve('..', '..', 'packages', dir, 'package.json') ); return version.split('.')[0]; } async function main() { const pathsToInvalidate = [ + '/atomic/latest/*', `/atomic/v${await getMajorVersion('atomic')}/*`, + '/headless/latest/*', `/headless/v${await getMajorVersion('headless')}/*`, ]; diff --git a/scripts/deploy/update-npm-tag.mjs b/scripts/deploy/update-npm-tag.mjs index d7755711975..4ea4030544f 100644 --- a/scripts/deploy/update-npm-tag.mjs +++ b/scripts/deploy/update-npm-tag.mjs @@ -1,17 +1,12 @@ -import {resolve} from 'path'; import {execute} from '../exec.mjs'; -import { - packageDirsNpmTag, - getPackageFromPath, - workspacesRoot, -} from '../packages.mjs'; +import {packageDirsNpmTag, getPackageFromPath} from '../packages.mjs'; +import {resolve} from 'path'; +import {promisify} from 'util'; async function main() { const requests = packageDirsNpmTag .map((dir) => - getPackageFromPath( - resolve(workspacesRoot, 'packages', dir, 'package.json') - ) + getPackageFromPath(resolve('..', '..', 'packages', dir, 'package.json')) ) .map(({name, version}) => updateNpmTag(name, version)); diff --git a/scripts/git.js b/scripts/git.js deleted file mode 100644 index add488a69dc..00000000000 --- a/scripts/git.js +++ /dev/null @@ -1,25 +0,0 @@ -const {promisify} = require('util'); -const exec = promisify(require('child_process').exec); - -const releaseBranch = 'master'; - -async function getBranchName() { - const {stdout} = await exec('git branch --show-current'); - return stdout; -} - -async function isOnReleaseBranch() { - return (await getBranchName()) === releaseBranch; -} - -async function getHowManyCommitsBehind() { - const {stdout} = await exec('git rev-list --count HEAD..@{u}'); - return parseInt(stdout); -} - -async function getHeadCommitTag() { - const {stdout} = await exec('git tag --points-at HEAD'); - return stdout; -} - -module.exports = {isOnReleaseBranch, getHowManyCommitsBehind, getHeadCommitTag}; diff --git a/scripts/notify-docs/published-ui-kit.mjs b/scripts/notify-docs/published-ui-kit.mjs index 3002d0ba5a2..00d88e980ba 100644 --- a/scripts/notify-docs/published-ui-kit.mjs +++ b/scripts/notify-docs/published-ui-kit.mjs @@ -1,15 +1,15 @@ import {Octokit} from '@octokit/rest'; import {resolve} from 'path'; -import {getPackageFromPath, workspacesRoot} from '../packages.mjs'; +import {getPackageFromPath} from '../packages.mjs'; const headlessPackageJson = getPackageFromPath( - resolve(workspacesRoot, 'packages', 'headless', 'package.json') + resolve('..', '..', 'packages', 'headless', 'package.json') ); const atomicPackageJson = getPackageFromPath( - resolve(workspacesRoot, 'packages', 'atomic', 'package.json') + resolve('..', '..', 'packages', 'atomic', 'package.json') ); const quanticPackageJson = getPackageFromPath( - resolve(workspacesRoot, 'packages', 'quantic', 'package.json') + resolve('..', '..', 'packages', 'quantic', 'package.json') ); const token = process.env.GITHUB_TOKEN || '';