From 4cc0b25cf9fdc54d6761b0be1fbf9072cb1bef7a Mon Sep 17 00:00:00 2001 From: Julian Skinner Date: Tue, 31 Oct 2023 09:21:39 -0500 Subject: [PATCH 1/3] chore: bootstrap releases for path: . --- .release-please-manifest.json | 3 +++ release-please-config.json | 12 ++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 .release-please-manifest.json create mode 100644 release-please-config.json diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 0000000000..46b1b67c03 --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "0.0.0" +} \ No newline at end of file diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 0000000000..41ecaacb05 --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,12 @@ +{ + "packages": { + ".": { + "changelog-path": "CHANGELOG.md", + "bump-minor-pre-major": false, + "bump-patch-for-minor-pre-major": false, + "draft": false, + "prerelease": false + } + }, + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json" +} \ No newline at end of file From aa588a097e0e147e0eb8382ca9ccd9ac9f544f51 Mon Sep 17 00:00:00 2001 From: Julian Skinner Date: Fri, 3 Nov 2023 09:58:51 -0500 Subject: [PATCH 2/3] chore: updates to include other packages --- .github/workflows/release-please.yml | 36 ++++++++++++++++++++++++++++ .release-please-manifest.json | 10 ++++++-- release-please-config.json | 29 ++++++++++++++++------ 3 files changed, 66 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/release-please.yml diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 0000000000..83ea2ed9e6 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,36 @@ +name: release-please + +on: + push: + branches: + - develop + +permissions: + contents: write + pull-requests: write + +jobs: + release-please: + runs-on: ubuntu-latest + outputs: + paths_released: ${{ steps.manifest-release.outputs.paths_released }} + steps: + - uses: google-github-actions/release-please-action@v3 + id: manifest-release + with: + command: manifest + monorepo-tags: true + default-branch: main + + - name: Show output from Release-Please + if: ${{ steps.manifest-release.outputs.releases_created }} + run: | + echo "releases_created: ${{ steps.manifest-release.outputs.releases_created }}" + echo "upload_url: ${{ steps.manifest-release.outputs.upload_url }}" + echo "html_url: ${{ steps.manifest-release.outputs.html_url }}" + echo "tag_name: ${{ steps.manifest-release.outputs.tag_name }}" + echo "major: ${{ steps.manifest-release.outputs.major }}" + echo "minor: ${{ steps.manifest-release.outputs.minor }}" + echo "patch: ${{ steps.manifest-release.outputs.patch }}" + echo "sha: ${{ steps.manifest-release.outputs.sha }}" + echo "pr: ${{ steps.manifest-release.outputs.pr }}" diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 46b1b67c03..edae66748e 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,9 @@ { - ".": "0.0.0" -} \ No newline at end of file + ".": "0.0.0", + "docs": "5.18.3", + "packages/sage-assets": "1.12.3", + "packages/sage-packs": "1.0.49", + "packages/sage-react": "1.17.3", + "packages/sage-system": "1.2.14" + +} diff --git a/release-please-config.json b/release-please-config.json index 41ecaacb05..b748348aec 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -1,12 +1,27 @@ { + "bootstrap-sha": "42ddac26b10cdb21dfcd547308fb6a29f9b8c6ef", + "bump-minor-pre-major": false, + "bump-patch-for-minor-pre-major": false, + "include-v-in-tag": false, + "include-component-in-tag": true, "packages": { - ".": { - "changelog-path": "CHANGELOG.md", - "bump-minor-pre-major": false, - "bump-patch-for-minor-pre-major": false, - "draft": false, - "prerelease": false + "docs":{ + }, + "packages/sage-assets": { + + }, + "packages/sage-packs": { + + }, + "packages/sage-react": { + + }, + "packages/sage-system": { + } }, + "plugins": [ + "sentence-case" + ], "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json" -} \ No newline at end of file +} From b6b14047b03310512182e6179491c875c1f0a30c Mon Sep 17 00:00:00 2001 From: Julian Skinner Date: Mon, 6 Nov 2023 08:57:44 -0600 Subject: [PATCH 3/3] chore: update workflows to leverage release please --- .github/workflows/release-deploy-v2.yml | 8 +- .github/workflows/release-deploy-v3.yml | 260 ++++++++++++++++++++++++ .github/workflows/release-please.yml | 5 + 3 files changed, 269 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/release-deploy-v3.yml diff --git a/.github/workflows/release-deploy-v2.yml b/.github/workflows/release-deploy-v2.yml index 8d05063ff8..1e366a66d9 100644 --- a/.github/workflows/release-deploy-v2.yml +++ b/.github/workflows/release-deploy-v2.yml @@ -1,12 +1,12 @@ -name: 'Release and Deploy v2' +name: 'Release and Deploy v2 - DISABLED' on: # Uncomment the line below if you want to run the workflow manually # and comment out lines 7-9 # workflow_dispatch: - push: - branches: - - main + # push: + # branches: + # - main concurrency: group: ${{ github.ref }} diff --git a/.github/workflows/release-deploy-v3.yml b/.github/workflows/release-deploy-v3.yml new file mode 100644 index 0000000000..e83561b59a --- /dev/null +++ b/.github/workflows/release-deploy-v3.yml @@ -0,0 +1,260 @@ +name: 'Release and Deploy v2' + +on: + workflow_call: + push: + branches: + - main + +concurrency: + group: ${{ github.ref }} + cancel-in-progress: true + +jobs: + setup: + + runs-on: ubuntu-latest + + steps: + - name: Clone Sage-Lib Repo + uses: actions/checkout@v3 + with: + # pulls all commits (needed for lerna / semantic release to correctly version) + fetch-depth: "0" + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16.20.2 + + - name: Set NPM Config + run: npm config set '//npm.pkg.github.com/:_authToken' '${{ secrets.ACCESS_TOKEN }}' + + - name: Unsafe Perm set + run: npm config set unsafe-perm true + + - name: Set Bot Name + run: git config user.name "Kajabi Automation Bot" + + - name: Cache Node modules + uses: actions/cache@v3 + id: sage-lib-node-modules + env: + cache-name: sage-lib-node-modules + with: + path: '**/node_modules' + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} + + - name: Install packages + if: steps.sage-lib-node-modules.outputs.cache-hit != true + run: yarn install --frozen-lockfile + + lint: + needs: [setup] + runs-on: ubuntu-latest + + steps: + - name: Check out latest + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16.20.2 + + - name: Restore Node modules + uses: actions/cache/restore@v3 + id: restore-sage-lib-node-modules + env: + cache-name: sage-lib-node-modules + with: + path: '**/node_modules' + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} + + - name: Install packages + if: steps.restore-sage-lib-node-modules.outputs.cache-hit != true + run: yarn install --frozen-lockfile + + - name: Lint + run: yarn lint + + test: + needs: [setup] + runs-on: ubuntu-latest + + steps: + - name: Check out latest + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16.20.2 + + - name: Restore Node modules + uses: actions/cache/restore@v3 + id: restore-sage-lib-node-modules + env: + cache-name: sage-lib-node-modules + with: + path: '**/node_modules' + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} + + - name: Install packages + if: steps.restore-sage-lib-node-modules.outputs.cache-hit != true + run: yarn install --frozen-lockfile + + - name: Test + run: yarn test + + build: + needs: [setup] + runs-on: ubuntu-latest + + steps: + - name: Check out latest + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16.20.2 + + - name: Restore Node modules + uses: actions/cache/restore@v3 + id: restore-sage-lib-node-modules + env: + cache-name: sage-lib-node-modules + with: + path: '**/node_modules' + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} + + - name: Install packages + if: steps.restore-sage-lib-node-modules.outputs.cache-hit != true + run: yarn install --frozen-lockfile + + - name: Build + run: yarn build + + - name: Cache build assets + uses: actions/cache/save@v3 + id: sage-lib-build-assets + env: + cache-name: sage-lib-build-assets + with: + path: | + 'packages/**' + 'docs/**' + key: ${{ runner.os }}-build-${{ env.cache-name }} + + + publish: + needs: [lint, test, build] + runs-on: ubuntu-latest + + steps: + - name: Check out latest + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '2.7.7' + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16.20.2 + + - name: Restore Node modules + uses: actions/cache/restore@v3 + id: restore-sage-lib-node-modules + env: + cache-name: sage-lib-node-modules + with: + path: '**/node_modules' + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} + + - name: Check cache hit + if: steps.restore-sage-lib-node-modules.outputs.cache-hit != 'true' + run: exit 1 + + - name: Set Bot Email + run: git config user.email "dev+github-bot@kajabi.com" + + - name: Set Bot Name + run: git config user.name "Kajabi Automation Bot" + + - name: Set NPM Config + run: npm config set '//npm.pkg.github.com/:_authToken' '${{ secrets.ACCESS_TOKEN }}' + + - name: Unsafe Perm set + run: npm config set unsafe-perm true + + - name: Restore Build assets + uses: actions/cache/restore@v3 + id: restore-sage-lib-build-assets + env: + cache-name: sage-lib-build-assets + with: + path: | + 'packages/**' + 'docs/**' + key: ${{ runner.os }}-build-${{ env.cache-name }} + + - name: Check Build Assets cache hit + if: steps.restore-sage-lib-build-assets.outputs.cache-hit != 'true' + continue-on-error: true + run: yarn build + + - name: Lerna Boostrap + run: npx lerna bootstrap --ci + + - name: Lerna Publish + run: npx lerna publish from-package --no-push --registry github --yes + + deploy-sites: + needs: publish + runs-on: ubuntu-latest + + steps: + - name: Check out latest + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '2.7.7' + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16.20.2 + + - name: Deploy Documentation Site + env: + HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + HEROKU_DOCS_APP_NAME: ${{ secrets.HEROKU_DOCS_APP_NAME }} + run: yarn docs:deploy + + - name: Deploy Storybook Site + env: + HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + HEROKU_STORYBOOK_APP_NAME: ${{ secrets.HEROKU_STORYBOOK_APP_NAME }} + run: yarn storybook:deploy + + - name: SassDocs Site Deploy + env: + HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + HEROKU_SASSDOCS_APP_NAME: ${{ secrets.HEROKU_SASSDOCS_APP_NAME }} + run: yarn sassdocs:deploy diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 83ea2ed9e6..7e26a915d3 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -21,6 +21,7 @@ jobs: command: manifest monorepo-tags: true default-branch: main + changelog-types: '[{"type":"docs", "section": "Documentation","hidden":false}]' - name: Show output from Release-Please if: ${{ steps.manifest-release.outputs.releases_created }} @@ -34,3 +35,7 @@ jobs: echo "patch: ${{ steps.manifest-release.outputs.patch }}" echo "sha: ${{ steps.manifest-release.outputs.sha }}" echo "pr: ${{ steps.manifest-release.outputs.pr }}" + + - name: Run Release Deploy + if: ${{ steps.manifest-release.outputs.releases_created }} + uses: ./.github/workflows/release-deploy-v3.yml