diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 00def29..9f10b07 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,11 +10,61 @@ jobs: - uses: actions/setup-node@v3.7.0 with: node-version: "18.x" +# The below action will see the existing tags and will bump the current ones and this is only used to check whether the given tag already exists or not +# We will be using the previous tag to compare with the current tag in the package.json +# If both match then no new release would be triggered +# Else New release will be created + - name: Bump version and push tag + id: tag_version + uses: mathieudutour/github-tag-action@v6.1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + default_bump: false +# Getting the version info from package.json + - name: get-npm-version + id: package-version + uses: martinbeentjes/npm-get-version-action@v1.3.1 +# Here we are checking whether this is the first release or not and then checking if it is release or not + - name: check-first-release + env: + First_Release: ${{steps.tag_version.outputs.previous_tag=='v0.0.0'}} + run: | + if ${First_Release} == true; then + echo "fr=true" >> $GITHUB_ENV + echo "flag set to true" + else + echo "fr=false" >> $GITHUB_ENV + echo "flag set to false" + fi + - name: check-release-version + if: ${{env.fr=='false'}} + env: + old_version: ${{steps.tag_version.outputs.previous_tag}} + new_version: v${{steps.package-version.outputs.current-version}} + run: | + echo ${old_version} + echo ${new_version} + echo ${{env.old_version==env.new_version}} + if ${{env.old_version!=env.new_version}}; then + echo "fr=true" >> $GITHUB_ENV + echo "flag set to true" + else + echo "fr=false" >> $GITHUB_ENV + echo "flag set to false" + fi - name: Installing dependencies run: npm install - name: Build run: npm run build-ts - name: Publishing datasync manager + id: publish-core uses: JS-DevTools/npm-publish@v2.2.0 + if: ${{env.fr=='true'}} with: token: ${{ secrets.NPM_TOKEN }} + - name: Create Release + id: create_release + if: ${{env.fr=='true'}} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gh release create v${{ steps.publish-core.outputs.version }} --title "Release ${{ steps.publish-core.outputs.version }}" --generate-notes \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d4b28e3..dafebbd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,15 @@ { "name": "@contentstack/datasync-manager", - "version": "2.0.3", + "version": "2.0.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@contentstack/datasync-manager", - "version": "2.0.3", + "version": "2.0.5", "license": "MIT", "dependencies": { - "@braintree/sanitize-url": "^6.0.3", + "@braintree/sanitize-url": "^6.0.4", "debug": "^4.3.4", "dns-socket": "^4.2.2", "lodash": "^4.17.21", @@ -1939,9 +1939,9 @@ "dev": true }, "node_modules/@braintree/sanitize-url": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.3.tgz", - "integrity": "sha512-g2hMyGSFYOvt0eeY2c2wrG1B6dVWF1be4vGxG9mI1BEHJuQm4Hie2HrooxYHBDRDi8hANIzQ8cuvBgxSVlQOTQ==" + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz", + "integrity": "sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==" }, "node_modules/@colors/colors": { "version": "1.5.0", @@ -5110,9 +5110,9 @@ } }, "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, "engines": { "node": "*" @@ -14631,9 +14631,9 @@ "dev": true }, "@braintree/sanitize-url": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.3.tgz", - "integrity": "sha512-g2hMyGSFYOvt0eeY2c2wrG1B6dVWF1be4vGxG9mI1BEHJuQm4Hie2HrooxYHBDRDi8hANIzQ8cuvBgxSVlQOTQ==" + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz", + "integrity": "sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==" }, "@colors/colors": { "version": "1.5.0", @@ -17014,9 +17014,9 @@ "dev": true }, "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true }, "get-intrinsic": { diff --git a/package.json b/package.json index b6072eb..548bdc3 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "name": "@contentstack/datasync-manager", "author": "Contentstack LLC ", - "version": "2.0.4", + "version": "2.0.5", "description": "The primary module of Contentstack DataSync. Syncs Contentstack data with your server using Contentstack Sync API", "main": "dist/index.js", "dependencies": { - "@braintree/sanitize-url": "^6.0.3", + "@braintree/sanitize-url": "^6.0.4", "debug": "^4.3.4", "dns-socket": "^4.2.2", "lodash": "^4.17.21",