-
Notifications
You must be signed in to change notification settings - Fork 11
Feat : Add GitHub Actions workflow for automatic wrapper publishing #175
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
Open
cb-ishusingh
wants to merge
1
commit into
master
Choose a base branch
from
feat/CHKOUTENGG-52904
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,197 @@ | ||
| name: Publish New Package Version | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - feat/CHKOUTENGG-52904 | ||
| paths: | ||
| - 'chargebee-js-vue/package.json' | ||
| - 'chargebee-js-react/package.json' | ||
| - 'chargebee-js-angular/projects/chargebee-js-angular-wrapper/package.json' | ||
|
|
||
| jobs: | ||
| check-and-publish: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v3 | ||
| with: | ||
| fetch-depth: 2 | ||
|
|
||
| - name: Setup Node.js | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| registry-url: 'https://registry.npmjs.org/' | ||
|
|
||
| - name: Check for changed packages | ||
| id: check-changes | ||
| run: | | ||
| echo "Checking for changes in package.json files..." | ||
|
|
||
| # Check Vue wrapper changes | ||
| if git diff --name-only HEAD^ HEAD | grep -q '^chargebee-js-vue/package.json'; then | ||
| echo "vue_changed=true" >> $GITHUB_OUTPUT | ||
| echo "Vue wrapper package.json has changes" | ||
| else | ||
| echo "vue_changed=false" >> $GITHUB_OUTPUT | ||
| fi | ||
|
|
||
| # Check React wrapper changes | ||
| if git diff --name-only HEAD^ HEAD | grep -q '^chargebee-js-react/package.json'; then | ||
| echo "react_changed=true" >> $GITHUB_OUTPUT | ||
| echo "React wrapper package.json has changes" | ||
| else | ||
| echo "react_changed=false" >> $GITHUB_OUTPUT | ||
| fi | ||
|
|
||
| # Check Angular wrapper changes | ||
| if git diff --name-only HEAD^ HEAD | grep -q '^chargebee-js-angular/projects/chargebee-js-angular-wrapper/package.json'; then | ||
| echo "angular_changed=true" >> $GITHUB_OUTPUT | ||
| echo "Angular wrapper package.json has changes" | ||
| else | ||
| echo "angular_changed=false" >> $GITHUB_OUTPUT | ||
| fi | ||
|
|
||
| - name: Extract Vue package info | ||
| id: vue-package | ||
| if: steps.check-changes.outputs.vue_changed == 'true' | ||
| run: | | ||
| cd chargebee-js-vue | ||
| PACKAGE_NAME=$(node -p "require('./package.json').name") | ||
| PACKAGE_VERSION=$(node -p "require('./package.json').version") | ||
| echo "name=$PACKAGE_NAME" >> $GITHUB_OUTPUT | ||
| echo "version=$PACKAGE_VERSION" >> $GITHUB_OUTPUT | ||
| echo "Package: $PACKAGE_NAME@$PACKAGE_VERSION" | ||
|
|
||
| - name: Check if Vue version exists in npm registry | ||
| id: vue-version-check | ||
| if: steps.check-changes.outputs.vue_changed == 'true' | ||
| run: | | ||
| NPM_PACKAGE_URL="https://registry.npmjs.org/${{ steps.vue-package.outputs.name }}/${{ steps.vue-package.outputs.version }}" | ||
| HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" $NPM_PACKAGE_URL) | ||
|
|
||
| if [ $HTTP_STATUS -eq 200 ]; then | ||
| echo "Version ${{ steps.vue-package.outputs.version }} already exists in npm registry" | ||
| echo "exists=true" >> $GITHUB_OUTPUT | ||
| else | ||
| echo "Version ${{ steps.vue-package.outputs.version }} does not exist in npm registry" | ||
| echo "exists=false" >> $GITHUB_OUTPUT | ||
| fi | ||
|
|
||
| - name: Install Vue dependencies and build | ||
| if: steps.vue-version-check.outputs.exists == 'false' | ||
| run: | | ||
| cd chargebee-js-vue | ||
| npm ci | ||
| npm run build | ||
|
|
||
| - name: Publish Vue wrapper to npm | ||
| if: steps.vue-version-check.outputs.exists == 'false' | ||
| run: | | ||
| cd chargebee-js-vue | ||
| echo "TEST MODE: Would publish @chargebee/chargebee-js-vue-wrapper" | ||
| # npm publish | ||
| env: | ||
| NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | ||
|
|
||
| - name: Vue package already exists | ||
| if: steps.vue-version-check.outputs.exists == 'true' | ||
| run: | | ||
| echo "Vue package version ${{ steps.vue-package.outputs.version }} already exists in the npm registry." | ||
| echo "Update the version in package.json to publish a new version." | ||
|
|
||
| - name: Extract React package info | ||
| id: react-package | ||
| if: steps.check-changes.outputs.react_changed == 'true' | ||
| run: | | ||
| cd chargebee-js-react | ||
| PACKAGE_NAME=$(node -p "require('./package.json').name") | ||
| PACKAGE_VERSION=$(node -p "require('./package.json').version") | ||
| echo "name=$PACKAGE_NAME" >> $GITHUB_OUTPUT | ||
| echo "version=$PACKAGE_VERSION" >> $GITHUB_OUTPUT | ||
| echo "Package: $PACKAGE_NAME@$PACKAGE_VERSION" | ||
|
|
||
| - name: Check if React version exists in npm registry | ||
| id: react-version-check | ||
| if: steps.check-changes.outputs.react_changed == 'true' | ||
| run: | | ||
| NPM_PACKAGE_URL="https://registry.npmjs.org/${{ steps.react-package.outputs.name }}/${{ steps.react-package.outputs.version }}" | ||
| HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" $NPM_PACKAGE_URL) | ||
|
|
||
| if [ $HTTP_STATUS -eq 200 ]; then | ||
| echo "Version ${{ steps.react-package.outputs.version }} already exists in npm registry" | ||
| echo "exists=true" >> $GITHUB_OUTPUT | ||
| else | ||
| echo "Version ${{ steps.react-package.outputs.version }} does not exist in npm registry" | ||
| echo "exists=false" >> $GITHUB_OUTPUT | ||
| fi | ||
|
|
||
| - name: Install React dependencies and build | ||
| if: steps.react-version-check.outputs.exists == 'false' | ||
| run: | | ||
| cd chargebee-js-react | ||
| npm ci | ||
| npm run build | ||
|
|
||
| - name: Publish React wrapper to npm | ||
| if: steps.react-version-check.outputs.exists == 'false' | ||
| run: | | ||
| cd chargebee-js-react | ||
| echo "TEST MODE: Would publish @chargebee/chargebee-js-react-wrapper" | ||
| # npm publish | ||
| env: | ||
| NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | ||
|
|
||
| - name: React package already exists | ||
| if: steps.react-version-check.outputs.exists == 'true' | ||
| run: | | ||
| echo "React package version ${{ steps.react-package.outputs.version }} already exists in the npm registry." | ||
| echo "Update the version in package.json to publish a new version." | ||
|
|
||
| - name: Extract Angular package info | ||
| id: angular-package | ||
| if: steps.check-changes.outputs.angular_changed == 'true' | ||
| run: | | ||
| cd chargebee-js-angular/projects/chargebee-js-angular-wrapper | ||
| PACKAGE_NAME=$(node -p "require('./package.json').name") | ||
| PACKAGE_VERSION=$(node -p "require('./package.json').version") | ||
| echo "name=$PACKAGE_NAME" >> $GITHUB_OUTPUT | ||
| echo "version=$PACKAGE_VERSION" >> $GITHUB_OUTPUT | ||
| echo "Package: $PACKAGE_NAME@$PACKAGE_VERSION" | ||
|
|
||
| - name: Check if Angular version exists in npm registry | ||
| id: angular-version-check | ||
| if: steps.check-changes.outputs.angular_changed == 'true' | ||
| run: | | ||
| NPM_PACKAGE_URL="https://registry.npmjs.org/${{ steps.angular-package.outputs.name }}/${{ steps.angular-package.outputs.version }}" | ||
| HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" $NPM_PACKAGE_URL) | ||
|
|
||
| if [ $HTTP_STATUS -eq 200 ]; then | ||
| echo "Version ${{ steps.angular-package.outputs.version }} already exists in npm registry" | ||
| echo "exists=true" >> $GITHUB_OUTPUT | ||
| else | ||
| echo "Version ${{ steps.angular-package.outputs.version }} does not exist in npm registry" | ||
| echo "exists=false" >> $GITHUB_OUTPUT | ||
| fi | ||
|
|
||
| - name: Install Angular dependencies and build | ||
| if: steps.angular-version-check.outputs.exists == 'false' | ||
| run: | | ||
| cd chargebee-js-angular | ||
| npm ci | ||
| npm run build | ||
|
|
||
| - name: Publish Angular wrapper to npm | ||
| if: steps.angular-version-check.outputs.exists == 'false' | ||
| run: | | ||
| cd chargebee-js-angular | ||
| echo "TEST MODE: Would publish @chargebee/chargebee-js-angular-wrapper" | ||
| # npm publish | ||
| env: | ||
| NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | ||
|
|
||
| - name: Angular package already exists | ||
| if: steps.angular-version-check.outputs.exists == 'true' | ||
| run: | | ||
| echo "Angular package version ${{ steps.angular-package.outputs.version }} already exists in the npm registry." | ||
| echo "Update the version in package.json to publish a new version." | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cb-adarshjayan @cb-ishusingh Shouldn't this be either
release/x.xor based on workflow-actions run?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We were testing with this branch name , will update it with the correct one once done testing