From ae7a11b41a74315679d6d4a9912320e5470ab381 Mon Sep 17 00:00:00 2001 From: fent <933490+fent@users.noreply.github.com> Date: Wed, 16 Dec 2020 19:51:37 -0700 Subject: [PATCH] chore(ci): use semantic-release for auto publish and release --- .github/workflows/release.yml | 25 +++++++++++++++++++++++++ lib/utils.js | 7 ++++--- package-lock.json | 2 +- package.json | 4 ++-- test/utils-test.js | 7 +++++-- 5 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..7a5e08b2 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,25 @@ +name: Release +on: + push: + branches: + - master +jobs: + release: + name: Release + runs-on: ubuntu-18.04 + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Setup Node.js + uses: actions/setup-node@v1 + with: + node-version: 14 + - name: Install dependencies + run: npm ci + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npx semantic-release diff --git a/lib/utils.js b/lib/utils.js index 977a5bb3..f336890a 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -141,15 +141,16 @@ exports.deprecate = (obj, prop, value, oldPath, newPath) => { // Check for updates. -const { version } = require('../package.json'); +const package = require('../package.json'); exports.lastUpdateCheck = 0; exports.checkForUpdates = () => { - if (!process.env.YTDL_NO_UPDATE && Date.now() - exports.lastUpdateCheck >= 1000 * 60 * 60 * 12) { + if (!process.env.YTDL_NO_UPDATE && !package.version.startsWith('0.0.0-') && + Date.now() - exports.lastUpdateCheck >= 1000 * 60 * 60 * 12) { exports.lastUpdateCheck = Date.now(); return miniget('https://api.github.com/repos/fent/node-ytdl-core/releases/latest', { headers: { 'User-Agent': 'ytdl-core' }, }).text().then(response => { - if (JSON.parse(response).tag_name !== `v${version}`) { + if (JSON.parse(response).tag_name !== `v${package.version}`) { console.warn('\x1b[33mWARNING:\x1B[0m ytdl-core is out of date! Update with "npm install ytdl-core@latest".'); } }); diff --git a/package-lock.json b/package-lock.json index e738e2ea..71633bd9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "ytdl-core", - "version": "4.1.6", + "version": "0.0.0-development", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 6feb85f3..04b235da 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,12 @@ { "name": "ytdl-core", - "description": "Youtube video downloader in pure javascript.", + "description": "YouTube video downloader in pure javascript.", "keywords": [ "youtube", "video", "download" ], - "version": "4.1.6", + "version": "0.0.0-development", "repository": { "type": "git", "url": "git://github.com/fent/node-ytdl-core.git" diff --git a/test/utils-test.js b/test/utils-test.js index e04400a6..6dd50c9a 100644 --- a/test/utils-test.js +++ b/test/utils-test.js @@ -106,10 +106,11 @@ describe('utils.checkForUpdates', () => { describe('Already on latest', () => { it('Does not warn the console', async() => { - const { version } = require('../package.json'); + const package = require('../package.json'); + sinon.replace(package, 'version', 'v1.0.0'); const scope = nock('https://api.github.com') .get('/repos/fent/node-ytdl-core/releases/latest') - .reply(200, { tag_name: `v${version}` }); + .reply(200, { tag_name: `v${package.version}` }); const warnSpy = sinon.spy(); sinon.replace(console, 'warn', warnSpy); sinon.replace(Date, 'now', sinon.stub().returns(Infinity)); @@ -121,6 +122,8 @@ describe('utils.checkForUpdates', () => { describe('When there is a new update', () => { it('Warns the console about the update', async() => { + const package = require('../package.json'); + sinon.replace(package, 'version', 'v1.0.0'); const scope = nock('https://api.github.com') .get('/repos/fent/node-ytdl-core/releases/latest') .reply(200, { tag_name: 'vInfinity.0.0' });