From 5dab60ca0dca77a65571dc45b109e7b3ea2be664 Mon Sep 17 00:00:00 2001 From: Maxim Kuleshov Date: Mon, 3 May 2021 01:19:11 +0300 Subject: [PATCH 1/3] Update build workflows --- .github/workflows/release-matrix.yml | 46 ++++++++++++++++++++++++++++ .github/workflows/release-win64.yml | 44 -------------------------- 2 files changed, 46 insertions(+), 44 deletions(-) create mode 100644 .github/workflows/release-matrix.yml delete mode 100644 .github/workflows/release-win64.yml diff --git a/.github/workflows/release-matrix.yml b/.github/workflows/release-matrix.yml new file mode 100644 index 0000000..860011c --- /dev/null +++ b/.github/workflows/release-matrix.yml @@ -0,0 +1,46 @@ +name: Release Builds + +on: + release: + types: [ created ] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + build_type: [ linux64, macos64, win64 ] + steps: + - name: Set build type + run: | + echo BUILD_TYPE=${{ matrix.build_type }} >> $GITHUB_ENV + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up Node.js + uses: actions/setup-node@v2 + with: + node-version: 14 + check-latest: true + + - name: Install Node modules + run: npm install + + - name: Get name and version from package.json + run: | + test -n $(node -p -e "require('./package.json').name") && + test -n $(node -p -e "require('./package.json').version") && + echo PACKAGE_NAME=$(node -p -e "require('./package.json').name") >> $GITHUB_ENV && + echo PACKAGE_VERSION=$(node -p -e "require('./package.json').version") >> $GITHUB_ENV || exit 1 + - name: Make build + run: npm run build-${{ env.BUILD_TYPE }} + + - name: Upload release + uses: actions/upload-release-asset@v1 + with: + upload_url: ${{ github.event.release.upload_url }} + asset_name: ${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}-${{ env.BUILD_TYPE }}.7z + asset_path: ./_builds/${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}-${{ env.BUILD_TYPE }}.7z + asset_content_type: application/x-7z-compressed + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release-win64.yml b/.github/workflows/release-win64.yml deleted file mode 100644 index 0a68cae..0000000 --- a/.github/workflows/release-win64.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Release Build Win64 - -on: - release: - types: [ created ] - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Set up Node.js - uses: actions/setup-node@v1.4.2 - with: - node-version: 12.15.0 - - - name: Install Node modules - run: npm install - - - name: Make build - run: npm run build-win64 - - - name: Get name from package.json - run: | - test -n "$(node -p -e "require('./package.json').name")" && - echo "::set-env name=PACKAGE_NAME::$(node -p -e "require('./package.json').name")" || exit 1 - - - name: Get version from package.json - run: | - test -n "$(node -p -e "require('./package.json').version")" && - echo "::set-env name=PACKAGE_VERSION::$(node -p -e "require('./package.json').version")" || exit 1 - - - name: Upload release - uses: actions/upload-release-asset@v1 - with: - upload_url: ${{ github.event.release.upload_url }} - asset_name: ${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}-win64.7z - asset_path: ./_builds/${{ env.PACKAGE_NAME }}-${{ env.PACKAGE_VERSION }}-win64.7z - asset_content_type: application/x-7z-compressed - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 5761e146c6560af883772cb0f861a9b3f15c9457 Mon Sep 17 00:00:00 2001 From: Arisu Desu Date: Mon, 3 May 2021 01:35:03 +0300 Subject: [PATCH 2/3] Use exit codes on failures --- modules/build.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/build.js b/modules/build.js index 3a97d9e..516c4c5 100644 --- a/modules/build.js +++ b/modules/build.js @@ -16,7 +16,7 @@ const nodeVer = ''; const buildType = process.argv[2]; if(!acceptableBuilds.includes(buildType)){ console.error('[ERROR] unknown build type!'); - process.exit(); + process.exit(1); } await modulesCleanup('.'); if(!fs.existsSync(buildsDir)){ @@ -29,7 +29,7 @@ const nodeVer = ''; } fs.mkdirSync(buildDir); fs.mkdirSync(`${buildDir}/bin`); - fs.mkdirSync(`${buildDir}/config`); + fs.mkdirSync(`${buildDir}/config`); fs.mkdirSync(`${buildDir}/videos`); fs.mkdirSync(`${buildDir}/videos/_trash`); const buildConfig = { @@ -47,7 +47,7 @@ const nodeVer = ''; } catch(e){ console.log(e); - process.exit(); + process.exit(1); } fs.copySync('./bin/', `${buildDir}/bin/`); fs.copySync('./config/bin-path.yml', `${buildDir}/config/bin-path.yml`); From b141152a188be973a79dcef8bde0abb1161e5611 Mon Sep 17 00:00:00 2001 From: Arisu Desu Date: Mon, 3 May 2021 01:54:45 +0300 Subject: [PATCH 3/3] Update build system --- funi.js | 19 +++++++++---------- modules/build.js | 28 ++++++++++++---------------- package.json | 2 +- 3 files changed, 22 insertions(+), 27 deletions(-) diff --git a/funi.js b/funi.js index aefcf0c..0fe8701 100644 --- a/funi.js +++ b/funi.js @@ -19,18 +19,17 @@ const m3u8 = require('m3u8-parsed'); const streamdl = require('hls-download'); // extra -const modulesFolder = __dirname + '/modules'; -const appYargs = require(modulesFolder+'/module.app-args'); -const getYamlCfg = require(modulesFolder+'/module.cfg-loader'); -const getData = require(modulesFolder + '/module.getdata.js'); -const vttConvert = require(modulesFolder + '/module.vttconvert'); +const appYargs = require('./modules/module.app-args'); +const getYamlCfg = require('./modules/module.cfg-loader'); +const getData = require('./modules/module.getdata.js'); +const vttConvert = require('./modules/module.vttconvert'); // new-cfg -const cfgFolder = __dirname + '/config'; -const binCfgFile = path.join(cfgFolder,'bin-path'); -const dirCfgFile = path.join(cfgFolder,'dir-path'); -const cliCfgFile = path.join(cfgFolder,'cli-defaults'); -const tokenFile = path.join(cfgFolder,'token'); +const cfgFolder = path.join(__dirname, '/config'); +const binCfgFile = path.join(cfgFolder, 'bin-path'); +const dirCfgFile = path.join(cfgFolder, 'dir-path'); +const cliCfgFile = path.join(cfgFolder, 'cli-defaults'); +const tokenFile = path.join(cfgFolder, 'token'); // params let cfg = { diff --git a/modules/build.js b/modules/build.js index 516c4c5..3a1113c 100644 --- a/modules/build.js +++ b/modules/build.js @@ -4,10 +4,10 @@ const pkg = require('../package.json'); const fs = require('fs-extra'); const modulesCleanup = require('removeNPMAbsolutePaths'); -const { compile } = require('nexe'); +const { exec } = require('pkg'); const buildsDir = './_builds'; -const nodeVer = ''; +const nodeVer = 'node14-'; // main (async function(){ @@ -28,27 +28,23 @@ const nodeVer = ''; fs.removeSync(buildDir); } fs.mkdirSync(buildDir); - fs.mkdirSync(`${buildDir}/bin`); - fs.mkdirSync(`${buildDir}/config`); - fs.mkdirSync(`${buildDir}/videos`); - fs.mkdirSync(`${buildDir}/videos/_trash`); - const buildConfig = { - loglevel: 'verbose', - input: './crunchy.js', - output: `${buildDir}/${pkg.short_name}`, - target: getTarget(buildType) + nodeVer, - resources: [ - './modules/module.*', - ], - }; + const buildConfig = [ + pkg.main, + '--target', nodeVer + getTarget(buildType), + '--output', `${buildDir}/${pkg.short_name}`, + ]; console.log(`[Build] Build configuration: ${buildFull}`); try { - await compile(buildConfig); + await exec(buildConfig); } catch(e){ console.log(e); process.exit(1); } + fs.mkdirSync(`${buildDir}/bin`); + fs.mkdirSync(`${buildDir}/config`); + fs.mkdirSync(`${buildDir}/videos`); + fs.mkdirSync(`${buildDir}/videos/_trash`); fs.copySync('./bin/', `${buildDir}/bin/`); fs.copySync('./config/bin-path.yml', `${buildDir}/config/bin-path.yml`); fs.copySync('./config/cli-defaults.yml', `${buildDir}/config/cli-defaults.yml`); diff --git a/package.json b/package.json index c592bda..1044f72 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ }, "devDependencies": { "fs-extra": "^9.0.1", - "nexe": "^3.3.7", + "pkg": "^4.4.9", "removeNPMAbsolutePaths": "^2.0.0" }, "scripts": {