Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature: Release NPM for PR #207

Merged
merged 38 commits into from
Nov 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
e0db56f
feature: Release NPM for PR
kevinshahfws Nov 6, 2023
5aa843c
feature: Release NPM for PR
kevinshahfws Nov 6, 2023
0803f43
Added branch name in .releaserc
kevinshahfws Nov 6, 2023
4648073
Added branch name in .releaserc
kevinshahfws Nov 6, 2023
66dd0a4
Added branch name in .releaserc
kevinshahfws Nov 6, 2023
a49dfbb
Added branch name in .releaserc
kevinshahfws Nov 6, 2023
c902f2e
Added branch name in .releaserc
kevinshahfws Nov 6, 2023
e9bdd7d
Removed pr-channel reference
kevinshahfws Nov 6, 2023
95e65a0
Removed pr-channel reference
kevinshahfws Nov 6, 2023
007209f
npm version command
kevinshahfws Nov 10, 2023
10e60dd
npm version command
kevinshahfws Nov 10, 2023
df674ef
npm version command
kevinshahfws Nov 10, 2023
35d8543
npm version command
kevinshahfws Nov 10, 2023
e039134
npm version command
kevinshahfws Nov 10, 2023
1fd99b5
Updated if condition for release npm
kevinshahfws Nov 10, 2023
64a79df
Updated if condition for build artifact
kevinshahfws Nov 10, 2023
1508ff2
Updated channel name to replace with -
kevinshahfws Nov 10, 2023
8db8fec
Updated channel name to replace with -
kevinshahfws Nov 10, 2023
d475606
Updated release name for PR
kevinshahfws Nov 10, 2023
ec65124
Debug for prerelease
kevinshahfws Nov 10, 2023
59e82f6
PR deploy
kpears201 Nov 10, 2023
e8cee5a
PR deploy
kpears201 Nov 10, 2023
d449196
PR deploy
kpears201 Nov 10, 2023
1737f38
PR deploy
kpears201 Nov 10, 2023
e630716
PR deploy
kpears201 Nov 10, 2023
442b9e3
PR deploy
kpears201 Nov 10, 2023
1da0c00
PR deploy
kpears201 Nov 10, 2023
dd46914
PR deploy
kpears201 Nov 10, 2023
9d4ad3a
PR deploy
kpears201 Nov 10, 2023
917d5c5
PR deploy
kpears201 Nov 10, 2023
d7e0b68
PR deploy
kpears201 Nov 10, 2023
b37342d
PR deploy
kpears201 Nov 10, 2023
f0d954b
PR deploy
kpears201 Nov 10, 2023
261c28b
PR deploy
kpears201 Nov 10, 2023
678102e
PR deploy
kpears201 Nov 10, 2023
d5072e6
PR deploy
kpears201 Nov 10, 2023
fc478c0
PR deploy
kpears201 Nov 10, 2023
4e93b24
PR deploy
kpears201 Nov 13, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 32 additions & 29 deletions .github/workflows/release-github.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,41 +35,45 @@ jobs:
run: 'echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc'
- name: Install dependencies
run: npm ci
- name: Set explicit npm dist-tag default
if: github.ref_name == 'main'
- name: Set main tags
if: github.ref_name == 'main' && github.event_name != 'pull_request'
run: |
echo "NPM_DIST_TAG=latest" >> $GITHUB_ENV
echo "RELEASE_CHANNEL=latest" >> $GITHUB_ENV
- name: Override npm dist-tag for non-main releases
if: github.ref_name != 'main'
echo "DOCS_TAG=latest" >> $GITHUB_ENV
- name: Set next tags
if: github.ref_name == 'next' && github.event_name != 'pull_request'
run: |
echo "Setting NPM_DIST_TAG to '${{ github.ref_name }}'"
echo "NPM_DIST_TAG=${{ github.ref_name }}" >> $GITHUB_ENV
- name: Override release channel for non-main releases
if: github.ref_name != 'main'
echo "NPM_DIST_TAG=next" >> $GITHUB_ENV
echo "DOCS_TAG=next" >> $GITHUB_ENV
- name: Set feature branch tags
if: github.ref_name != 'main' && github.ref_name != 'next' && github.event_name != 'pull_request'
run: |
echo "Setting RELEASE_CHANNEL to '$(node ./src/js/version.mjs channel $NPM_DIST_TAG)' using branch name '$NPM_DIST_TAG'"
echo "RELEASE_CHANNEL=$(node ./src/js/version.mjs channel $NPM_DIST_TAG)" >> $GITHUB_ENV
- name: Override release channel for PRs
if: github.event_name == 'pull_request'
echo "NPM_DIST_TAG=test" >> $GITHUB_ENV
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Won't this set the npm release channel to test?

echo "FEATURE_BRANCH=${{ github.ref_name }}" >> $GITHUB_ENV
- name: Set PR tags
if: github.ref_name != 'main' && github.ref_name != 'next' && github.event_name == 'pull_request'
run: |
echo "Setting RELEASE_CHANNEL to 'pr${{ github.event.number }}'"
echo "RELEASE_CHANNEL=pr${{ github.event.number }}" >> $GITHUB_ENV
echo "NPM_DIST_TAG=test" >> $GITHUB_ENV
echo "DOCS_TAG=$(node ./src/js/version.mjs branch-to-prerelease ${{ github.head_ref }})" >> $GITHUB_ENV
echo "FEATURE_BRANCH=${{ github.head_ref }}" >> $GITHUB_ENV
- name: Release mono-artifact to GitHub
if: (github.ref_name != 'main' && github.event_name != 'pull_request') || github.event_name == 'workflow_dispatch'
env:
GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE_BOT_PAT }} # <-- Allows semantic-release-bot to push changes to protected branches
npm_config_tag: ${{ env.NPM_DIST_TAG }} # <-- For main, this is `latest.` Otherwise, `next`, `next-major`, etc. See ./.releaserc for release branch config.
run: npx semantic-release
- name: Dry-run mono-artifact
if: (github.ref_name == 'main' && github.event_name != 'workflow_dispatch') || github.event_name == 'pull_request'
env:
GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE_BOT_PAT }} # <-- Allows semantic-release-bot to push changes to protected branches
npm_config_tag: ${{ env.NPM_DIST_TAG }} # <-- For main, this is `latest.` Otherwise, `next`, `next-major`, etc. See ./.releaserc for release branch config.
run: npx semantic-release --dry-run
- name: Build artifacts for PRs
if: github.event_name == 'pull_request'
run: npm run dist
- name: Build artifacts for feature branches
if: github.ref_name != 'main' && github.ref_name != 'next'
run: |
PRERELEASE=$(node ./src/js/version.mjs branch-to-prerelease $FEATURE_BRANCH)
node ./src/js/version.mjs latest-prerelease $PRERELEASE
npm version prerelease --preid $PRERELEASE --git-tag-version false
npm version prerelease --preid $PRERELEASE --workspaces --git-tag-version false
npm run dist
- name: Check if semantic-release created a build
id: check_build
uses: andstor/file-existence-action@v2
Expand All @@ -79,32 +83,31 @@ jobs:
if: steps.check_build.outputs.files_exists == 'true' && github.event_name != 'pull_request' && (github.ref_name != 'main' || github.event_name == 'workflow_dispatch')
env:
NPM_TOKEN: ${{ secrets.SEMANTIC_RELEASE_NPM_TOKEN }} # <-- Allows semantic-release to publish to npm without 2 factor auth.
npm_config_tag: ${{ env.NPM_DIST_TAG }} # <-- For main, this is `latest.` Otherwise, `next`, `next-major`, etc. See ./.releaserc for release branch config.
run: npm publish --tag $RELEASE_CHANNEL --workspaces
run: |
npm --version
echo "NPM DIST TAG :: " $NPM_DIST_TAG
npm publish --tag $NPM_DIST_TAG --workspaces
- name: Dry-run Firebolt SDKs to NPM
if: steps.check_build.outputs.files_exists == 'true' && (github.ref_name == 'main' && github.event_name != 'workflow_dispatch')
env:
NPM_TOKEN: ${{ secrets.SEMANTIC_RELEASE_NPM_TOKEN }} # <-- Allows semantic-release to publish to npm without 2 factor auth.
npm_config_tag: ${{ env.NPM_DIST_TAG }} # <-- For main, this is `latest.` Otherwise, `next`, `next-major`, etc. See ./.releaserc for release branch config.
run: npm publish --tag $RELEASE_CHANNEL --workspaces --dry-run
run: npm publish --tag $NPM_DIST_TAG --workspaces --dry-run
- name: Checkout firebolt GitHub.io repository
if: steps.check_build.outputs.files_exists == 'true'
env:
GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE_BOT_PAT }} # <-- Allows semantic-release-bot to push changes to protected branches
npm_config_tag: ${{ env.NPM_DIST_TAG }} # <-- For main, this is `latest.` Otherwise, `next`, `next-major`, etc. See ./.releaserc for release branch config.
run: |
cd /tmp
git clone https://rdkcentral:[email protected]/rdkcentral/firebolt.git ./firebolt-docs
- name: Release docs to GitHub.io
if: steps.check_build.outputs.files_exists == 'true'
if: steps.check_build.outputs.files_exists == 'true' && (github.ref_name == 'main' || github.ref_name == 'next' || github.event_name != 'pull_request')
env:
GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE_BOT_PAT }} # <-- Allows semantic-release-bot to push changes to protected branches
npm_config_tag: ${{ env.NPM_DIST_TAG }} # <-- For main, this is `latest.` Otherwise, `next`, `next-major`, etc. See ./.releaserc for release branch config.
run: |
npm run publish:docs /tmp/firebolt-docs $RELEASE_CHANNEL
npm run publish:docs /tmp/firebolt-docs $DOCS_TAG
cd /tmp/firebolt-docs
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
git add --all
git diff-index --quiet HEAD || git commit -m "chore: Publish $RELEASE_CHANNEL"
git diff-index --quiet HEAD || git commit -m "chore: Publish $DOCS_TAG"
git push
Loading
Loading