diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f6d2725..aa05560 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: BotWhatsapp CI +name: BotWhatsapp Build-Test on: pull_request: @@ -34,55 +34,6 @@ jobs: - name: Build Eslint rules run: yarn lint:fix - ############ RELEASE ############ - release: - name: Release - runs-on: ubuntu-latest - needs: - - build-package - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - ref: ${{ github.head_ref }} - - - name: Setup Node - uses: actions/setup-node@v3 - with: - node-version: 16.x - cache: 'yarn' - registry-url: https://registry.npmjs.org/ - - - run: corepack enable - - - name: Install NPM Dependencies - run: yarn install --immutable --network-timeout 300000 - - - name: Build Package - run: yarn build - - - name: Release @bot-whatsapp/bot - run: yarn node ./scripts/release.js --name=bot --version= --token="${{ secrets.NPM_TOKEN }}" - - - name: Release @bot-whatsapp/cli - run: yarn node ./scripts/release.js --name=cli --version= --token="${{ secrets.NPM_TOKEN }}" - - - name: Release @bot-whatsapp/create-bot-whatsapp - run: yarn node ./scripts/release.js --name=create-bot-whatsapp --version= --token="${{ secrets.NPM_TOKEN }}" - - - name: Release @bot-whatsapp/database - run: yarn node ./scripts/release.js --name=database --version= --token="${{ secrets.NPM_TOKEN }}" - - - name: Release @bot-whatsapp/provider - run: yarn node ./scripts/release.js --name=provider --version= --token="${{ secrets.NPM_TOKEN }}" - - - name: Commit Versioning & Push changes - uses: actions-js/push@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - message: 'ci(version): :zap: automatic - ${date} updated versions every packages' - branch: 'dev' - ############ UNIT TEST ############ test-unit: name: Unit Tests diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml new file mode 100644 index 0000000..f1f74dd --- /dev/null +++ b/.github/workflows/releases.yml @@ -0,0 +1,58 @@ +name: BotWhatsapp Releases + +on: + pull_request: + types: [closed] + branches: + - next-release + +jobs: + ############ RELEASE ############ + release: + name: Release + runs-on: ubuntu-latest + if: github.event.pull_request.merged == 'true' + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + ref: ${{ github.head_ref }} + persist-credentials: false + fetch-depth: 0 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16.x + cache: 'yarn' + registry-url: https://registry.npmjs.org/ + + - run: corepack enable + + - name: Install NPM Dependencies + run: yarn install --immutable --network-timeout 300000 + + - name: Build Package + run: yarn build + + - name: Release @bot-whatsapp/bot + run: yarn node ./scripts/release.js --name=bot --version= --token="${{ secrets.NPM_TOKEN }}" + + - name: Release @bot-whatsapp/cli + run: yarn node ./scripts/release.js --name=cli --version= --token="${{ secrets.NPM_TOKEN }}" + + - name: Release @bot-whatsapp/create-bot-whatsapp + run: yarn node ./scripts/release.js --name=create-bot-whatsapp --version= --token="${{ secrets.NPM_TOKEN }}" + + - name: Release @bot-whatsapp/database + run: yarn node ./scripts/release.js --name=database --version= --token="${{ secrets.NPM_TOKEN }}" + + - name: Release @bot-whatsapp/provider + run: yarn node ./scripts/release.js --name=provider --version= --token="${{ secrets.NPM_TOKEN }}" + + - name: Commit Versioning & Push changes + uses: actions-js/push@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + message: 'ci(version): :zap: automatic - ${date} updated versions every packages' + branch: 'next-release' diff --git a/packages/bot/package.json b/packages/bot/package.json index c3c1819..5e48152 100644 --- a/packages/bot/package.json +++ b/packages/bot/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/bot", - "version": "0.0.13-alpha.0", + "version": "0.0.15-alpha.0", "description": "", "main": "./lib/bundle.bot.cjs", "scripts": { diff --git a/packages/cli/package.json b/packages/cli/package.json index 274df2d..c01f647 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/cli", - "version": "0.0.20-alpha.0", + "version": "0.0.22-alpha.0", "description": "", "main": "index.js", "devDependencies": { diff --git a/packages/create-bot-whatsapp/package.json b/packages/create-bot-whatsapp/package.json index 4b54827..8c16fb0 100644 --- a/packages/create-bot-whatsapp/package.json +++ b/packages/create-bot-whatsapp/package.json @@ -1,6 +1,6 @@ { "name": "create-bot-whatsapp", - "version": "0.0.26-alpha.0", + "version": "0.0.28-alpha.0", "description": "", "main": "./lib/bundle.create-bot-whatsapp.cjs", "files": [ diff --git a/packages/database/package.json b/packages/database/package.json index 98786ba..fc31820 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/database", - "version": "0.0.12-alpha.0", + "version": "0.0.14-alpha.0", "description": "Esto es el conector a mysql, pg, mongo", "main": "./lib/mock/index.cjs", "keywords": [], diff --git a/packages/provider/package.json b/packages/provider/package.json index 7c99889..bb1f21d 100644 --- a/packages/provider/package.json +++ b/packages/provider/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/provider", - "version": "0.0.18-alpha.0", + "version": "0.0.19-alpha.0", "description": "Esto es el conector a Twilio, Meta, etc...", "main": "./lib/mock/index.cjs", "keywords": [], diff --git a/scripts/release.js b/scripts/release.js index d72522e..9fbc820 100644 --- a/scripts/release.js +++ b/scripts/release.js @@ -82,6 +82,24 @@ const updateVersion = async (packageName = null, number = null) => { return { version: newVersion } } +const checkExistVersion = async (packageName = null, version = null) => { + try { + const pkgJson = join(PATH_PACKAGES, packageName) + const pkgJsonObject = readPackage(packageName) + const { stdout } = await cmd( + NPM_COMMAND, + ['view', `${pkgJsonObject.name}@${version}`], + { + stdio: 'inherit', + cwd: pkgJson, + } + ) + return true + } catch (e) { + return false + } +} + const packRelease = async (packageName) => { const pkgJson = join(PATH_PACKAGES, packageName) const { stdout } = await cmd(NPM_COMMAND, ['pack'], { @@ -108,14 +126,19 @@ const publishRelease = async (packageName, latest = null) => { const main = async () => { if (PKG_ARG) { + let EXIST_VERSION = true const tokenNpm = NPM_TOKEN ? NPM_TOKEN.split('=').at(1) : null const pkgName = PKG_ARG ? PKG_ARG.split('=').at(1) : null const pkgNumber = PKG_ARG_VERSION ? PKG_ARG_VERSION.split('=').at(1) : null if (tokenNpm) await npmToken(tokenNpm) - await updateVersion(pkgName, pkgNumber) - await packRelease(pkgName) + + while (EXIST_VERSION) { + const { version } = await updateVersion(pkgName, pkgNumber) + EXIST_VERSION = await checkExistVersion(pkgName, version) + console.log(`[${pkgName} - Version]: `, version, EXIST_VERSION) + } await publishRelease(pkgName, pkgNumber) } }