diff --git a/.github/workflows/test-cmake.yml b/.github/workflows/test-cmake.yml index b4e3619..383297a 100644 --- a/.github/workflows/test-cmake.yml +++ b/.github/workflows/test-cmake.yml @@ -17,7 +17,16 @@ jobs: strategy: matrix: - os: [ubuntu-18.04, windows-2016] + include: + - os: ubuntu-20.04 + COMPILER: gcc + PLATFORM: 20.04 + - os: windows-2019 + COMPILER: msvc + PLATFORM: 2019 + - os: windows-2019 + COMPILER: mingw + PLATFORM: 2019 steps: - uses: actions/checkout@v2 @@ -25,14 +34,29 @@ jobs: uses: ./ id: install-boost with: - boost_version: 1.73.0 + boost_version: 1.78.0 + platform_version: ${{matrix.PLATFORM}} + toolset: ${{matrix.COMPILER}} + + - name: Setup MinGW + uses: egor-tensin/setup-mingw@v2 + if: ${{runner.os == 'Windows' && matrix.COMPILER == 'mingw'}} + + - name: Configure CMake mingw + shell: bash + working-directory: test + run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBoost_LIBRARY_DIRS="${{steps.install-boost.outputs.BOOST_ROOT}}/lib" -G "MinGW Makefiles" -B build + if: ${{matrix.COMPILER == 'mingw'}} + env: + BOOST_ROOT: ${{steps.install-boost.outputs.BOOST_ROOT}} - name: Configure CMake shell: bash working-directory: test run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBoost_LIBRARY_DIRS="${{steps.install-boost.outputs.BOOST_ROOT}}/lib" -B build + if: ${{matrix.COMPILER != 'mingw'}} env: - BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }} + BOOST_ROOT: ${{steps.install-boost.outputs.BOOST_ROOT}} - name: Build working-directory: test/build shell: bash diff --git a/README.md b/README.md index 0e4f156..0cc55d4 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,14 @@ Install Boost in GitHub actions using prebuilt binaries. ### `boost_version` **Required** The boost version to install, e.g. ``1.73.0``. -A list of supported versions can be found [here](https://github.com/MarkusJx/prebuilt-boost/blob/main/versions-manifest.json). +A list of supported versions can be found [here](https://github.com/MarkusJx/prebuilt-boost/blob/main/versions-manifest.json). If you need a specific (unlisted) version, open a new issue +[here](https://github.com/MarkusJx/prebuilt-boost), requesting the required version. ### `platform_version` **Optional** The platform version of the system boost was compiled on, e.g. ``18.04`` for ``ubuntu-18.04``, ``2016`` for ``windows-2016`` or ``10.15`` for ``macos-10.15``. +Supported values are ``2016`` (windows, until boost v1.78.0), ``2019`` (windows), ``18.04`` (ubuntu), +``20.04`` (ubuntu), ``10.15`` (macOs), ``11`` (macOs). **You maybe want to set this as a version will** +**be selected at random if unset and [may cause issues](https://github.com/MarkusJx/install-boost/issues/7).** ### `boost_install_dir` **Optional** The directory to install boost into. If specified, boost will be installed into @@ -22,8 +26,13 @@ If the ``legacy`` version is used, the binaries are downloaded from [actions/boo The list of supported toolsets and versions can be found [here](https://github.com/actions/boost-versions/blob/main/versions-manifest.json). ### `toolset` -**DEPRECATED Optional** A toolset used to compile boost, e.g. ``msvc14.2``. May only be used on windows, as the value on ubuntu is always ``gcc``. -Can only be specified when the ``legacy`` version is used. +**Optional** A toolset used to compile boost, e.g. ``msvc``. +May be one of ``msvc`` (windows), ``mingw`` (windows), ``gcc`` (linux) or ``clang`` (macOs). +**You maybe want to set this on windows as either ``mingw`` or ``msvc`` will be selected at random** +**which may cause your build to fail.** +Selecting this is only supported for boost versions ``1.78.0`` and higher with the new version of +this action or any version with the legacy versions. Please refer to the provided version manifests +for further information. ## Outputs ### `BOOST_ROOT` @@ -42,7 +51,7 @@ The version of boost installed, e.g. ``boost-1.73.0-linux-16.04``. ### Windows ```yml - name: Install boost - uses: MarkusJx/install-boost@v2.0.0 + uses: MarkusJx/install-boost@v2.1.0 id: install-boost with: # REQUIRED: Specify the required boost version @@ -52,7 +61,9 @@ The version of boost installed, e.g. ``boost-1.73.0-linux-16.04``. # OPTIONAL: Specify a custon install location boost_install_dir: C:\some_directory # OPTIONAL: Specify a platform version - platform_version: 2016 + platform_version: 2019 + # OPTIONAL: Specify a toolset + toolset: msvc # NOTE: If a boost version matching all requirements cannot be found, # this build step will fail @@ -61,7 +72,7 @@ The version of boost installed, e.g. ``boost-1.73.0-linux-16.04``. ### Ubuntu ```yml - name: Install boost - uses: MarkusJx/install-boost@v2.0.0 + uses: MarkusJx/install-boost@v2.1.0 id: install-boost with: # REQUIRED: Specify the required boost version @@ -72,6 +83,8 @@ The version of boost installed, e.g. ``boost-1.73.0-linux-16.04``. platform_version: 18.04 # OPTIONAL: Specify a custom install location boost_install_dir: /home/runner/some_directory + # OPTIONAL: Specify a toolset + toolset: gcc # NOTE: If a boost version matching all requirements cannot be found, # this build step will fail @@ -80,7 +93,7 @@ The version of boost installed, e.g. ``boost-1.73.0-linux-16.04``. ### MacOs ```yml - name: Install boost - uses: MarkusJx/install-boost@v2.0.0 + uses: MarkusJx/install-boost@v2.1.0 id: install-boost with: # REQUIRED: Specify the required boost version @@ -91,6 +104,8 @@ The version of boost installed, e.g. ``boost-1.73.0-linux-16.04``. platform_version: 10.15 # OPTIONAL: Specify a custom install location boost_install_dir: /home/runner/some_directory + # OPTIONAL: Specify a toolset + toolset: clang # NOTE: If a boost version matching all requirements cannot be found, # this build step will fail @@ -119,7 +134,7 @@ The version of boost installed, e.g. ``boost-1.73.0-linux-16.04``. or ```yml - name: Install boost - uses: MarkusJx/install-boost@v2.0.0 + uses: MarkusJx/install-boost@v2.1.0 id: install-boost with: # REQUIRED: Specify the required boost version @@ -155,3 +170,66 @@ or # NOTE: If a boost version matching all requirements cannot be found, # this build step will fail ``` +## Caching +If you want to cache the boost versions to further accelerate your builds, you could use +``actions/cache`` to do that ([as seen here](https://github.com/MarkusJx/install-boost/issues/6)): +```yml +# Retrieve the cache, uses cache@v2 +- name: Cache boost + uses: actions/cache@v2 + id: cache-boost + with: + # Set the default path as the path to cache + path: ${{env.GITHUB_WORKSPACE}}/boost/boost + # Use the version as the key to only cache the correct version + key: boost-${{BOOST_VERSION}} + +# Actual install step (only runs if the cache is empty) +- name: Install boost + if: steps.cache-boost.outputs.cache-hit != 'true' + uses: MarkusJx/install-boost@v2.1.0 + with: + # Set the boost version (required) + boost_version: ${{BOOST_VERSION}} +``` + +or if you want to use custom paths for boost: +```yml +jobs: + build: + runs-on: windows-2019 + env: + # Set your boost version + BOOST_VERSION: 1.78.0 + # Set you boost path to the default one (I don't know if you can use variables here) + BOOST_PATH: ${{env.GITHUB_WORKSPACE}}/boost/boost + + steps: + - uses: actions/checkout@v2 + + # Additional steps... + + # Retrieve the cache, uses cache@v2 + - name: Cache boost + uses: actions/cache@v2 + id: cache-boost + with: + # Set the path to cache + path: ${{env.BOOST_PATH}} + # Use the version as the key to only cache the correct version + key: boost-${{env.BOOST_VERSION}} + + # Actual install step (only runs if the cache is empty) + - name: Install boost + if: steps.cache-boost.outputs.cache-hit != 'true' + uses: MarkusJx/install-boost@v2.1.0 + with: + # Set the boost version (required) + boost_version: ${{env.BOOST_VERSION}} + # Set the install directory + boost_install_dir: ${{env.BOOST_PATH}} + # Set your platform version + platform_version: 2019 + # Set the toolset + toolset: msvc +``` \ No newline at end of file diff --git a/action.yml b/action.yml index c442967..3cb7304 100644 --- a/action.yml +++ b/action.yml @@ -6,11 +6,11 @@ inputs: description: 'The boost version to install, e.g. "1.73.0"' required: true toolset: - description: 'The toolset used to compile boost, e.g. "msvc14.2". May only be used on windows' + description: 'The toolset used to compile boost, e.g. "msvc"' required: false default: '' platform_version: - description: 'The platform version boost was compiled on, e.g. "18.04". May only be used on linux' + description: 'The platform version boost was compiled on, e.g. "18.04"' required: false default: '' boost_install_dir: diff --git a/dist/index.js b/dist/index.js index 7452c95..46e95e0 100644 --- a/dist/index.js +++ b/dist/index.js @@ -6,65 +6,68 @@ module.exports = /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const installV1_1 = __nccwpck_require__(5389); -const installV2_1 = __nccwpck_require__(7225); -const core = __nccwpck_require__(2186); -const path = __nccwpck_require__(5622); -var BOOST_ROOT_DIR = path.join(process.env.GITHUB_WORKSPACE, 'boost'); -const VERSION = "2.beta.1"; -function main() { - return __awaiter(this, void 0, void 0, function* () { - const boost_version = core.getInput("boost_version"); - const toolset = core.getInput("toolset"); - const platform_version = core.getInput("platform_version"); - const boost_install_dir = core.getInput("boost_install_dir"); - let script_version = core.getInput("version"); - if (boost_version.length <= 0) { - throw new Error("the boost_version variable must be defined"); - } - if (boost_install_dir.length > 0) { - BOOST_ROOT_DIR = path.join(boost_install_dir, 'boost'); - console.log(`The install directory was manually changed to ${BOOST_ROOT_DIR}`); - } - if (script_version.length <= 0) { - script_version = "default"; - } - if (script_version === "legacy") { - yield installV1_1.default(boost_version, toolset, platform_version, BOOST_ROOT_DIR); - } - else if (script_version === "default") { - if (toolset.length > 0) { - throw new Error("The 'toolset' option can only be used when the script version is set to 'legacy'"); - } - yield installV2_1.default(boost_version, platform_version, BOOST_ROOT_DIR); - } - else { - throw new Error("Invalid value entered for option 'version'"); - } - }); -} -try { - console.log(`Starting install-boost@${VERSION}`); - main().then(() => { - console.log(`install-boost@${VERSION} finished successfully`); - }, (reject) => { - core.setFailed(reject); - }); -} -catch (error) { - core.setFailed(error.message); -} + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const installV1_1 = __nccwpck_require__(5389); +const installV2_1 = __nccwpck_require__(7225); +const core = __nccwpck_require__(2186); +const path = __nccwpck_require__(5622); +var BOOST_ROOT_DIR = path.join(process.env.GITHUB_WORKSPACE, 'boost'); +const VERSION = "2.1.0"; +function main() { + return __awaiter(this, void 0, void 0, function* () { + const boost_version = core.getInput("boost_version"); + const toolset = core.getInput("toolset"); + const platform_version = core.getInput("platform_version"); + const boost_install_dir = core.getInput("boost_install_dir"); + let script_version = core.getInput("version"); + if (boost_version.length <= 0) { + throw new Error("the boost_version variable must be defined"); + } + if (boost_install_dir.length > 0) { + BOOST_ROOT_DIR = path.join(boost_install_dir, 'boost'); + console.log(`The install directory was manually changed to ${BOOST_ROOT_DIR}`); + } + if (!script_version) { + script_version = "default"; + } + if (!platform_version) { + core.warning("The 'platform_version' input is unset. This may lead to inconsistent build results."); + } + if (!toolset && process.platform === "win32") { + core.warning("The 'toolset' input is unset. This may lead to inconsistent build results."); + } + if (script_version === "legacy") { + yield installV1_1.default(boost_version, toolset, platform_version, BOOST_ROOT_DIR); + } + else if (script_version === "default") { + yield installV2_1.default(boost_version, toolset, platform_version, BOOST_ROOT_DIR); + } + else { + throw new Error("Invalid value entered for option 'version'"); + } + }); +} +try { + console.log(`Starting install-boost@${VERSION}`); + main().then(() => { + console.log(`install-boost@${VERSION} finished successfully`); + }, (reject) => { + core.setFailed(reject); + }); +} +catch (error) { + core.setFailed(error.message); +} //# sourceMappingURL=index.js.map /***/ }), @@ -73,55 +76,55 @@ catch (error) { /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const core = __nccwpck_require__(2186); -const path = __nccwpck_require__(5622); -const shared_1 = __nccwpck_require__(6058); -const VERSION_MANIFEST_ADDR = "https://raw.githubusercontent.com/actions/boost-versions/main/versions-manifest.json"; -function installV1(boost_version, toolset, platform_version, BOOST_ROOT_DIR) { - return __awaiter(this, void 0, void 0, function* () { - console.log("Using legacy install method"); - console.log("Downloading versions-manifest.json..."); - const versions = yield shared_1.getVersions(VERSION_MANIFEST_ADDR); - console.log("Parsing versions-manifest.json..."); - const ver_data = shared_1.parseArguments(versions, boost_version, toolset, platform_version); - const download_url = ver_data.url; - const filename = ver_data.filename; - core.startGroup(`Create ${BOOST_ROOT_DIR}`); - shared_1.createDirectory(BOOST_ROOT_DIR); - core.endGroup(); - core.startGroup("Download Boost"); - yield shared_1.downloadBoost(download_url, path.join(BOOST_ROOT_DIR, filename)); - core.endGroup(); - let base_dir = filename.substring(0, filename.lastIndexOf(".")); - base_dir = base_dir.substring(0, base_dir.lastIndexOf(".")); - const BOOST_ROOT = path.join(BOOST_ROOT_DIR, base_dir); - core.debug(`Boost base directory: ${base_dir}`); - core.startGroup(`Extract ${filename}`); - yield shared_1.untarBoost(base_dir, BOOST_ROOT_DIR); - core.endGroup(); - core.startGroup("Clean up"); - shared_1.cleanup(BOOST_ROOT_DIR, base_dir); - core.endGroup(); - core.startGroup("Set output variables"); - console.log(`Setting BOOST_ROOT to '${BOOST_ROOT}'`); - console.log(`Setting BOOST_VER to '${base_dir}'`); - core.endGroup(); - core.setOutput("BOOST_ROOT", BOOST_ROOT); - core.setOutput("BOOST_VER", base_dir); - }); -} -exports.default = installV1; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const core = __nccwpck_require__(2186); +const path = __nccwpck_require__(5622); +const shared_1 = __nccwpck_require__(6058); +const VERSION_MANIFEST_ADDR = "https://raw.githubusercontent.com/actions/boost-versions/main/versions-manifest.json"; +function installV1(boost_version, toolset, platform_version, BOOST_ROOT_DIR) { + return __awaiter(this, void 0, void 0, function* () { + console.log("Using legacy install method"); + console.log("Downloading versions-manifest.json..."); + const versions = yield shared_1.getVersions(VERSION_MANIFEST_ADDR); + console.log("Parsing versions-manifest.json..."); + const ver_data = shared_1.parseArguments(versions, boost_version, toolset, platform_version); + const download_url = ver_data.url; + const filename = ver_data.filename; + core.startGroup(`Create ${BOOST_ROOT_DIR}`); + shared_1.createDirectory(BOOST_ROOT_DIR); + core.endGroup(); + core.startGroup("Download Boost"); + yield shared_1.downloadBoost(download_url, path.join(BOOST_ROOT_DIR, filename)); + core.endGroup(); + let base_dir = filename.substring(0, filename.lastIndexOf(".")); + base_dir = base_dir.substring(0, base_dir.lastIndexOf(".")); + const BOOST_ROOT = path.join(BOOST_ROOT_DIR, base_dir); + core.debug(`Boost base directory: ${base_dir}`); + core.startGroup(`Extract ${filename}`); + yield shared_1.untarBoost(base_dir, BOOST_ROOT_DIR); + core.endGroup(); + core.startGroup("Clean up"); + shared_1.cleanup(BOOST_ROOT_DIR, base_dir); + core.endGroup(); + core.startGroup("Set output variables"); + console.log(`Setting BOOST_ROOT to '${BOOST_ROOT}'`); + console.log(`Setting BOOST_VER to '${base_dir}'`); + core.endGroup(); + core.setOutput("BOOST_ROOT", BOOST_ROOT); + core.setOutput("BOOST_VER", base_dir); + }); +} +exports.default = installV1; //# sourceMappingURL=installV1.js.map /***/ }), @@ -130,52 +133,52 @@ exports.default = installV1; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const core = __nccwpck_require__(2186); -const path = __nccwpck_require__(5622); -const shared_1 = __nccwpck_require__(6058); -const VERSION_MANIFEST_ADDR = "https://raw.githubusercontent.com/MarkusJx/prebuilt-boost/main/versions-manifest.json"; -function installV2(boost_version, platform_version, BOOST_ROOT_DIR) { - return __awaiter(this, void 0, void 0, function* () { - console.log("Downloading versions-manifest.json..."); - const versions = yield shared_1.getVersions(VERSION_MANIFEST_ADDR); - console.log("Parsing versions-manifest.json..."); - const ver_data = shared_1.parseArguments(versions, boost_version, null, platform_version); - const download_url = ver_data.url; - const filename = ver_data.filename; - core.startGroup(`Create ${BOOST_ROOT_DIR}`); - shared_1.createDirectory(BOOST_ROOT_DIR); - core.endGroup(); - core.startGroup("Download Boost"); - yield shared_1.downloadBoost(download_url, path.join(BOOST_ROOT_DIR, filename)); - core.endGroup(); - let base_dir = filename.substring(0, filename.lastIndexOf(".")); - base_dir = base_dir.substring(0, base_dir.lastIndexOf(".")); - core.startGroup(`Extract ${filename}`); - yield shared_1.untarBoost(base_dir, BOOST_ROOT_DIR, false); - core.endGroup(); - core.startGroup("Clean up"); - shared_1.cleanup(BOOST_ROOT_DIR, base_dir); - core.endGroup(); - core.startGroup("Set output variables"); - console.log(`Setting BOOST_ROOT to '${BOOST_ROOT_DIR}/boost'`); - console.log(`Setting BOOST_VER to '${base_dir}'`); - core.endGroup(); - core.setOutput("BOOST_ROOT", path.join(BOOST_ROOT_DIR, 'boost')); - core.setOutput("BOOST_VER", base_dir); - }); -} -exports.default = installV2; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const core = __nccwpck_require__(2186); +const path = __nccwpck_require__(5622); +const shared_1 = __nccwpck_require__(6058); +const VERSION_MANIFEST_ADDR = "https://raw.githubusercontent.com/MarkusJx/prebuilt-boost/main/versions-manifest.json"; +function installV2(boost_version, toolset, platform_version, BOOST_ROOT_DIR) { + return __awaiter(this, void 0, void 0, function* () { + console.log("Downloading versions-manifest.json..."); + const versions = yield shared_1.getVersions(VERSION_MANIFEST_ADDR); + console.log("Parsing versions-manifest.json..."); + const ver_data = shared_1.parseArguments(versions, boost_version, toolset, platform_version); + const download_url = ver_data.url; + const filename = ver_data.filename; + core.startGroup(`Create ${BOOST_ROOT_DIR}`); + shared_1.createDirectory(BOOST_ROOT_DIR); + core.endGroup(); + core.startGroup("Download Boost"); + yield shared_1.downloadBoost(download_url, path.join(BOOST_ROOT_DIR, filename)); + core.endGroup(); + let base_dir = filename.substring(0, filename.lastIndexOf(".")); + base_dir = base_dir.substring(0, base_dir.lastIndexOf(".")); + core.startGroup(`Extract ${filename}`); + yield shared_1.untarBoost(base_dir, BOOST_ROOT_DIR, false); + core.endGroup(); + core.startGroup("Clean up"); + shared_1.cleanup(BOOST_ROOT_DIR, base_dir); + core.endGroup(); + core.startGroup("Set output variables"); + console.log(`Setting BOOST_ROOT to '${BOOST_ROOT_DIR}/boost'`); + console.log(`Setting BOOST_VER to '${base_dir}'`); + core.endGroup(); + core.setOutput("BOOST_ROOT", path.join(BOOST_ROOT_DIR, 'boost')); + core.setOutput("BOOST_VER", base_dir); + }); +} +exports.default = installV2; //# sourceMappingURL=installV2.js.map /***/ }), @@ -184,259 +187,259 @@ exports.default = installV2; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.cleanup = exports.untarBoost = exports.deleteFiles = exports.downloadBoost = exports.parseArguments = exports.createDirectory = exports.getVersions = void 0; -const core = __nccwpck_require__(2186); -const request = __nccwpck_require__(8699); -const fs = __nccwpck_require__(5747); -const progress = __nccwpck_require__(6139); -const path = __nccwpck_require__(5622); -const child_process_1 = __nccwpck_require__(3129); -function getVersions(manifestAddress) { - return new Promise((resolve, reject) => { - const req = request.get(manifestAddress); - // Append data to the data object - let dt = ""; - req.on('data', data => { - dt += data; - }); - // Resolve on end with the data - req.on('end', () => { - core.debug("Downloaded data: " + dt); - resolve(JSON.parse(dt)); - }); - // Reject on error - req.on('error', err => { - reject(err.message); - }); - }); -} -exports.getVersions = getVersions; -/** - * Create a directory - * - * @param dir the directory to create - */ -function createDirectory(dir) { - if (!fs.existsSync(dir)) { - console.log(`${dir} does not exist, creating it`); - fs.mkdirSync(dir); - console.log("Done."); - } - else { - console.log(`${dir} already exists, doing nothing`); - } -} -exports.createDirectory = createDirectory; -/** - * Try to find the specified boost version - * - * @param versions the version object array from getVersions() - * @param boost_version the requested boost version - * @param toolset the requested toolset - * @param platform_version the requested platform version - * @returns the url and file name or throws an error if the requested version could not be found - */ -function parseArguments(versions, boost_version, toolset, platform_version) { - let platform = process.platform; - if (platform === "darwin") { - platform = "macos"; - } - else if (platform === "win32") { - platform = "windows"; - } - for (let i = 0; i < versions.length; i++) { - let cur = versions[i]; - if (cur.hasOwnProperty("version") && cur["version"] == boost_version) { - let files = cur["files"]; - for (let j = 0; j < files.length; j++) { - let file = files[j]; - core.debug(`file platform: ${file["platform"]}`); - if (!file.hasOwnProperty("platform") || file["platform"] != platform) { - core.debug("File does not match param 'platform'"); - continue; - } - core.debug(`file toolset: ${file["toolset"]}`); - if (toolset != null && toolset.length > 0 && (!file.hasOwnProperty("toolset") || file["toolset"] != toolset)) { - core.debug("File does not match param 'toolset'"); - continue; - } - core.debug(`file platform version: ${file["platform_version"]}`); - if (platform_version.length > 0 && (!file.hasOwnProperty("platform_version") || file["platform_version"] != platform_version)) { - core.debug("File does not match param 'platform_version"); - continue; - } - return { url: file["download_url"], filename: file["filename"] }; - } - break; - } - } - throw new Error(`Could not find boost version ${boost_version}`); -} -exports.parseArguments = parseArguments; -/** - * Download boost - * - * @param url the url to download from - * @param outFile the file to download to - */ -function downloadBoost(url, outFile) { - return new Promise((resolve, reject) => { - // Get the request with progress - const req = progress(request(url)); - req.on('progress', state => { - // Log the progress - core.debug(`Progress state: ${JSON.stringify(state)}`); - const percent = state.percent * 100; - console.log(`Download progress: ${percent.toFixed(2)}%`); - }); - // Pipe to outFile - req.pipe(fs.createWriteStream(outFile)); - // Resolve on download finished - req.on('end', () => { - console.log("Download finished"); - resolve(); - }); - // Fail on error - req.on('error', err => { - reject(err); - }); - }); -} -exports.downloadBoost = downloadBoost; -/** - * Delete files - * - * @param files the files to delete - */ -function deleteFiles(files) { - console.log(`Attempting to delete ${files.length} file(s)...`); - for (let i = 0; i < files.length; i++) { - let cur_file = files[i]; - if (fs.existsSync(cur_file)) { - console.log(`${cur_file} exists, deleting it`); - fs.unlinkSync(cur_file); - } - else { - console.log(`${cur_file} does not exist`); - } - } -} -exports.deleteFiles = deleteFiles; -/** - * Untar boost on linux/macOs - * - * @param filename the file to extract - * @param out_dir the output directory - * @param working_directory the working directory - */ -function untarLinux(filename, out_dir, working_directory, rename) { - return new Promise((resolve, reject) => { - const args = ["xzf", filename]; - if (rename) { - args.push("-C", out_dir); - } - // Use tar to unpack boost - const tar = child_process_1.spawn("tar", args, { - stdio: [process.stdin, process.stdout, process.stderr], - cwd: working_directory - }); - // Reject/Resolve on close - tar.on('close', (code) => { - if (code != 0) { - reject(`Tar exited with code ${code}`); - } - else { - console.log("Tar exited with code 0"); - resolve(); - } - }); - // Reject on error - tar.on('error', (err) => { - reject(`Tar failed: ${err}`); - }); - }); -} -/** - * Unpack boost on windows using 7zip - * - * @param command the command array to run - * @param working_directory the working directory to work in - */ -function run7z(command, working_directory) { - return new Promise((resolve, reject) => { - // Spawn a 7z process - const tar = child_process_1.spawn("7z", command, { - stdio: [process.stdin, process.stdout, process.stderr], - cwd: working_directory - }); - // Reject/Resolve on close - tar.on('close', (code) => { - if (code != 0) { - reject(`7z exited with code ${code}`); - } - else { - console.log("7z exited with code 0"); - resolve(); - } - }); - // Reject on error - tar.on('error', (err) => { - reject(`7z failed: ${err}`); - }); - }); -} -/** - * Unpack boost using tar on unix or 7zip on windows - * - * @param base the output base - * @param working_directory the working directory - */ -function untarBoost(base, working_directory, rename = true) { - return __awaiter(this, void 0, void 0, function* () { - if (process.platform == "win32") { - core.debug("Unpacking boost using 7zip"); - yield run7z(['x', `${base}.tar.gz`], working_directory); - if (rename) { - yield run7z(['x', `${base}.tar`, '-aoa', `-o${base}`], working_directory); - } - else { - yield run7z(['x', `${base}.tar`, '-aoa'], working_directory); - } - } - else { - core.debug("Unpacking boost using tar"); - createDirectory(path.join(working_directory, base)); - yield untarLinux(`${base}.tar.gz`, base, working_directory, rename); - } - }); -} -exports.untarBoost = untarBoost; -/** - * Clean up - * - * @param base_dir the base directory - * @param base the boost base name (without .tar.gz) - */ -function cleanup(base_dir, base) { - if (process.platform == "win32") { - deleteFiles([path.join(base_dir, `${base}.tar.gz`), path.join(base_dir, `${base}.tar`)]); - } - else { - deleteFiles([path.join(base_dir, `${base}.tar.gz`)]); - } -} -exports.cleanup = cleanup; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.cleanup = exports.untarBoost = exports.deleteFiles = exports.downloadBoost = exports.parseArguments = exports.createDirectory = exports.getVersions = void 0; +const core = __nccwpck_require__(2186); +const request = __nccwpck_require__(8699); +const fs = __nccwpck_require__(5747); +const progress = __nccwpck_require__(6139); +const path = __nccwpck_require__(5622); +const child_process_1 = __nccwpck_require__(3129); +function getVersions(manifestAddress) { + return new Promise((resolve, reject) => { + const req = request.get(manifestAddress); + // Append data to the data object + let dt = ""; + req.on('data', data => { + dt += data; + }); + // Resolve on end with the data + req.on('end', () => { + core.debug("Downloaded data: " + dt); + resolve(JSON.parse(dt)); + }); + // Reject on error + req.on('error', err => { + reject(err.message); + }); + }); +} +exports.getVersions = getVersions; +/** + * Create a directory + * + * @param dir the directory to create + */ +function createDirectory(dir) { + if (!fs.existsSync(dir)) { + console.log(`${dir} does not exist, creating it`); + fs.mkdirSync(dir); + console.log("Done."); + } + else { + console.log(`${dir} already exists, doing nothing`); + } +} +exports.createDirectory = createDirectory; +/** + * Try to find the specified boost version + * + * @param versions the version object array from getVersions() + * @param boost_version the requested boost version + * @param toolset the requested toolset + * @param platform_version the requested platform version + * @returns the url and file name or throws an error if the requested version could not be found + */ +function parseArguments(versions, boost_version, toolset, platform_version) { + let platform = process.platform; + if (platform === "darwin") { + platform = "macos"; + } + else if (platform === "win32") { + platform = "windows"; + } + for (let i = 0; i < versions.length; i++) { + let cur = versions[i]; + if (cur.hasOwnProperty("version") && cur["version"] == boost_version) { + let files = cur["files"]; + for (let j = 0; j < files.length; j++) { + let file = files[j]; + core.debug(`file platform: ${file["platform"]}`); + if (!file.hasOwnProperty("platform") || file["platform"] != platform) { + core.debug("File does not match param 'platform'"); + continue; + } + core.debug(`file toolset: ${file["toolset"]}`); + if (toolset && (!file.hasOwnProperty("toolset") || file["toolset"] != toolset)) { + core.debug("File does not match param 'toolset'"); + continue; + } + core.debug(`file platform version: ${file["platform_version"]}`); + if (platform_version.length > 0 && (!file.hasOwnProperty("platform_version") || file["platform_version"] != platform_version)) { + core.debug("File does not match param 'platform_version"); + continue; + } + return { url: file["download_url"], filename: file["filename"] }; + } + break; + } + } + throw new Error(`Could not find boost version ${boost_version}`); +} +exports.parseArguments = parseArguments; +/** + * Download boost + * + * @param url the url to download from + * @param outFile the file to download to + */ +function downloadBoost(url, outFile) { + return new Promise((resolve, reject) => { + // Get the request with progress + const req = progress(request(url)); + req.on('progress', state => { + // Log the progress + core.debug(`Progress state: ${JSON.stringify(state)}`); + const percent = state.percent * 100; + console.log(`Download progress: ${percent.toFixed(2)}%`); + }); + // Pipe to outFile + req.pipe(fs.createWriteStream(outFile)); + // Resolve on download finished + req.on('end', () => { + console.log("Download finished"); + resolve(); + }); + // Fail on error + req.on('error', err => { + reject(err); + }); + }); +} +exports.downloadBoost = downloadBoost; +/** + * Delete files + * + * @param files the files to delete + */ +function deleteFiles(files) { + console.log(`Attempting to delete ${files.length} file(s)...`); + for (let i = 0; i < files.length; i++) { + let cur_file = files[i]; + if (fs.existsSync(cur_file)) { + console.log(`${cur_file} exists, deleting it`); + fs.unlinkSync(cur_file); + } + else { + console.log(`${cur_file} does not exist`); + } + } +} +exports.deleteFiles = deleteFiles; +/** + * Untar boost on linux/macOs + * + * @param filename the file to extract + * @param out_dir the output directory + * @param working_directory the working directory + */ +function untarLinux(filename, out_dir, working_directory, rename) { + return new Promise((resolve, reject) => { + const args = ["xzf", filename]; + if (rename) { + args.push("-C", out_dir); + } + // Use tar to unpack boost + const tar = child_process_1.spawn("tar", args, { + stdio: [process.stdin, process.stdout, process.stderr], + cwd: working_directory + }); + // Reject/Resolve on close + tar.on('close', (code) => { + if (code != 0) { + reject(`Tar exited with code ${code}`); + } + else { + console.log("Tar exited with code 0"); + resolve(); + } + }); + // Reject on error + tar.on('error', (err) => { + reject(`Tar failed: ${err}`); + }); + }); +} +/** + * Unpack boost on windows using 7zip + * + * @param command the command array to run + * @param working_directory the working directory to work in + */ +function run7z(command, working_directory) { + return new Promise((resolve, reject) => { + // Spawn a 7z process + const tar = child_process_1.spawn("7z", command, { + stdio: [process.stdin, process.stdout, process.stderr], + cwd: working_directory + }); + // Reject/Resolve on close + tar.on('close', (code) => { + if (code != 0) { + reject(`7z exited with code ${code}`); + } + else { + console.log("7z exited with code 0"); + resolve(); + } + }); + // Reject on error + tar.on('error', (err) => { + reject(`7z failed: ${err}`); + }); + }); +} +/** + * Unpack boost using tar on unix or 7zip on windows + * + * @param base the output base + * @param working_directory the working directory + */ +function untarBoost(base, working_directory, rename = true) { + return __awaiter(this, void 0, void 0, function* () { + if (process.platform == "win32") { + core.debug("Unpacking boost using 7zip"); + yield run7z(['x', `${base}.tar.gz`], working_directory); + if (rename) { + yield run7z(['x', `${base}.tar`, '-aoa', `-o${base}`], working_directory); + } + else { + yield run7z(['x', `${base}.tar`, '-aoa'], working_directory); + } + } + else { + core.debug("Unpacking boost using tar"); + createDirectory(path.join(working_directory, base)); + yield untarLinux(`${base}.tar.gz`, base, working_directory, rename); + } + }); +} +exports.untarBoost = untarBoost; +/** + * Clean up + * + * @param base_dir the base directory + * @param base the boost base name (without .tar.gz) + */ +function cleanup(base_dir, base) { + if (process.platform == "win32") { + deleteFiles([path.join(base_dir, `${base}.tar.gz`), path.join(base_dir, `${base}.tar`)]); + } + else { + deleteFiles([path.join(base_dir, `${base}.tar.gz`)]); + } +} +exports.cleanup = cleanup; //# sourceMappingURL=shared.js.map /***/ }), @@ -14148,9 +14151,7 @@ function escapeJsonPtr(str) { /** * JSONSchema Validator - Validates JavaScript objects using JSON Schemas * (http://www.json.com/json-schema-proposal/) - * - * Copyright (c) 2007 Kris Zyp SitePen (www.sitepen.com) - * Licensed under the MIT (MIT-LICENSE.txt) license. + * Licensed under AFL-2.1 OR BSD-3-Clause To use the validator call the validate function with an instance object and an optional schema object. If a schema is provided, it will be used to validate. If the instance object refers to a schema (self-validating), that schema will be used to validate and the schema parameter is not necessary (if both exist, @@ -14254,7 +14255,7 @@ var validate = exports._validate = function(/*Any*/instance,/*Object*/schema,/*O !(value instanceof Array && type == 'array') && !(value instanceof Date && type == 'date') && !(type == 'integer' && value%1===0)){ - return [{property:path,message:(typeof value) + " value found, but a " + type + " is required"}]; + return [{property:path,message:value + " - " + (typeof value) + " value found, but a " + type + " is required"}]; } if(type instanceof Array){ var unionErrors=[]; @@ -14317,11 +14318,11 @@ var validate = exports._validate = function(/*Any*/instance,/*Object*/schema,/*O if(schema.minLength && typeof value == 'string' && value.length < schema.minLength){ addError("must be at least " + schema.minLength + " characters long"); } - if(typeof schema.minimum !== undefined && typeof value == typeof schema.minimum && + if(typeof schema.minimum !== 'undefined' && typeof value == typeof schema.minimum && schema.minimum > value){ addError("must have a minimum value of " + schema.minimum); } - if(typeof schema.maximum !== undefined && typeof value == typeof schema.maximum && + if(typeof schema.maximum !== 'undefined' && typeof value == typeof schema.maximum && schema.maximum < value){ addError("must have a maximum value of " + schema.maximum); } @@ -14356,8 +14357,8 @@ var validate = exports._validate = function(/*Any*/instance,/*Object*/schema,/*O } for(var i in objTypeDef){ - if(objTypeDef.hasOwnProperty(i)){ - var value = instance[i]; + if(objTypeDef.hasOwnProperty(i) && i != '__proto__' && i != 'constructor'){ + var value = instance.hasOwnProperty(i) ? instance[i] : undefined; // skip _not_ specified properties if (value === undefined && options.existingOnly) continue; var propDef = objTypeDef[i]; @@ -14378,7 +14379,7 @@ var validate = exports._validate = function(/*Any*/instance,/*Object*/schema,/*O delete instance[i]; continue; } else { - errors.push({property:path,message:(typeof value) + "The property " + i + + errors.push({property:path,message:"The property " + i + " is not defined in the schema and the schema does not allow additional properties"}); } } diff --git a/dist/index.js.map b/dist/index.js.map index 6aff154..7ecddb6 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAAoC;AACpC,2CAAoC;AAEpC,sCAAsC;AACtC,6BAA6B;AAE7B,IAAI,cAAc,GAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAC9E,MAAM,OAAO,GAAW,UAAU,CAAC;AAEnC,SAAe,IAAI;;QACf,MAAM,aAAa,GAAW,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAW,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,gBAAgB,GAAW,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACnE,MAAM,iBAAiB,GAAW,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACrE,IAAI,cAAc,GAAW,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEtD,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SACjE;QAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,iDAAiD,cAAc,EAAE,CAAC,CAAC;SAClF;QAED,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE;YAC5B,cAAc,GAAG,SAAS,CAAC;SAC9B;QAED,IAAI,cAAc,KAAK,QAAQ,EAAE;YAC7B,MAAM,mBAAS,CAAC,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;SAC7E;aAAM,IAAI,cAAc,KAAK,SAAS,EAAE;YACrC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;aACvG;YAED,MAAM,mBAAS,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;SACpE;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SACjE;IACL,CAAC;CAAA;AAED,IAAI;IACA,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;IACjD,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,wBAAwB,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE;QACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;CACN;AAAC,OAAO,KAAK,EAAE;IACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CACjC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAAoC;AACpC,2CAAoC;AAEpC,sCAAsC;AACtC,6BAA6B;AAE7B,IAAI,cAAc,GAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAC9E,MAAM,OAAO,GAAW,OAAO,CAAC;AAEhC,SAAe,IAAI;;QACf,MAAM,aAAa,GAAW,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAW,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,gBAAgB,GAAW,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACnE,MAAM,iBAAiB,GAAW,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACrE,IAAI,cAAc,GAAW,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEtD,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SACjE;QAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,iDAAiD,cAAc,EAAE,CAAC,CAAC;SAClF;QAED,IAAI,CAAC,cAAc,EAAE;YACjB,cAAc,GAAG,SAAS,CAAC;SAC9B;QAED,IAAI,CAAC,gBAAgB,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,qFAAqF,CAAC,CAAC;SACvG;QAED,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;YAC1C,IAAI,CAAC,OAAO,CAAC,4EAA4E,CAAC,CAAC;SAC9F;QAED,IAAI,cAAc,KAAK,QAAQ,EAAE;YAC7B,MAAM,mBAAS,CAAC,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;SAC7E;aAAM,IAAI,cAAc,KAAK,SAAS,EAAE;YACrC,MAAM,mBAAS,CAAC,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;SAC7E;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SACjE;IACL,CAAC;CAAA;AAED,IAAI;IACA,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;IACjD,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,wBAAwB,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE;QACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;CACN;AAAC,OAAO,KAAK,EAAE;IACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CACjC"} \ No newline at end of file diff --git a/dist/installV2.js b/dist/installV2.js index 8ebe450..9b1cfb7 100644 --- a/dist/installV2.js +++ b/dist/installV2.js @@ -13,12 +13,12 @@ const core = require("@actions/core"); const path = require("path"); const shared_1 = require("./shared"); const VERSION_MANIFEST_ADDR = "https://raw.githubusercontent.com/MarkusJx/prebuilt-boost/main/versions-manifest.json"; -function installV2(boost_version, platform_version, BOOST_ROOT_DIR) { +function installV2(boost_version, toolset, platform_version, BOOST_ROOT_DIR) { return __awaiter(this, void 0, void 0, function* () { console.log("Downloading versions-manifest.json..."); const versions = yield shared_1.getVersions(VERSION_MANIFEST_ADDR); console.log("Parsing versions-manifest.json..."); - const ver_data = shared_1.parseArguments(versions, boost_version, null, platform_version); + const ver_data = shared_1.parseArguments(versions, boost_version, toolset, platform_version); const download_url = ver_data.url; const filename = ver_data.filename; core.startGroup(`Create ${BOOST_ROOT_DIR}`); diff --git a/dist/installV2.js.map b/dist/installV2.js.map index aa1bc11..f8984bc 100644 --- a/dist/installV2.js.map +++ b/dist/installV2.js.map @@ -1 +1 @@ -{"version":3,"file":"installV2.js","sourceRoot":"","sources":["../src/installV2.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAsC;AACtC,6BAA6B;AAC7B,qCAA4G;AAE5G,MAAM,qBAAqB,GAAW,uFAAuF,CAAC;AAE9H,SAA8B,SAAS,CAAC,aAAqB,EAAE,gBAAwB,EAAE,cAAsB;;QAC3G,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAa,MAAM,oBAAW,CAAC,qBAAqB,CAAC,CAAC;QAEpE,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,uBAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACjF,MAAM,YAAY,GAAW,QAAQ,CAAC,GAAG,CAAC;QAC1C,MAAM,QAAQ,GAAW,QAAQ,CAAC,QAAQ,CAAC;QAE3C,IAAI,CAAC,UAAU,CAAC,UAAU,cAAc,EAAE,CAAC,CAAC;QAC5C,wBAAe,CAAC,cAAc,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAClC,MAAM,sBAAa,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,QAAQ,GAAW,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAE5D,IAAI,CAAC,UAAU,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC;QACvC,MAAM,mBAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5B,gBAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,0BAA0B,cAAc,SAAS,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,yBAAyB,QAAQ,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;CAAA;AAnCD,4BAmCC"} \ No newline at end of file +{"version":3,"file":"installV2.js","sourceRoot":"","sources":["../src/installV2.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAsC;AACtC,6BAA6B;AAC7B,qCAA4G;AAE5G,MAAM,qBAAqB,GAAW,uFAAuF,CAAC;AAE9H,SAA8B,SAAS,CAAC,aAAqB,EAAE,OAAe,EAAE,gBAAwB,EAAE,cAAsB;;QAC5H,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAa,MAAM,oBAAW,CAAC,qBAAqB,CAAC,CAAC;QAEpE,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,uBAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACpF,MAAM,YAAY,GAAW,QAAQ,CAAC,GAAG,CAAC;QAC1C,MAAM,QAAQ,GAAW,QAAQ,CAAC,QAAQ,CAAC;QAE3C,IAAI,CAAC,UAAU,CAAC,UAAU,cAAc,EAAE,CAAC,CAAC;QAC5C,wBAAe,CAAC,cAAc,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAClC,MAAM,sBAAa,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,QAAQ,GAAW,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAE5D,IAAI,CAAC,UAAU,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC;QACvC,MAAM,mBAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5B,gBAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,0BAA0B,cAAc,SAAS,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,yBAAyB,QAAQ,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;CAAA;AAnCD,4BAmCC"} \ No newline at end of file diff --git a/dist/licenses.txt b/dist/licenses.txt index af34b8b..fee8315 100644 --- a/dist/licenses.txt +++ b/dist/licenses.txt @@ -676,7 +676,203 @@ Address all questions regarding this license to: tjw@cs.Stanford.EDU json-schema -AFLv2.1 +(AFL-2.1 OR BSD-3-Clause) +Dojo is available under *either* the terms of the BSD 3-Clause "New" License *or* the +Academic Free License version 2.1. As a recipient of Dojo, you may choose which +license to receive this code under (except as noted in per-module LICENSE +files). Some modules may not be the copyright of the Dojo Foundation. These +modules contain explicit declarations of copyright in both the LICENSE files in +the directories in which they reside and in the code itself. No external +contributions are allowed under licenses which are fundamentally incompatible +with the AFL-2.1 OR and BSD-3-Clause licenses that Dojo is distributed under. + +The text of the AFL-2.1 and BSD-3-Clause licenses is reproduced below. + +------------------------------------------------------------------------------- +BSD 3-Clause "New" License: +********************** + +Copyright (c) 2005-2015, The Dojo Foundation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the Dojo Foundation nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------------------------------------------------------------------- +The Academic Free License, v. 2.1: +********************************** + +This Academic Free License (the "License") applies to any original work of +authorship (the "Original Work") whose owner (the "Licensor") has placed the +following notice immediately following the copyright notice for the Original +Work: + +Licensed under the Academic Free License version 2.1 + +1) Grant of Copyright License. Licensor hereby grants You a world-wide, +royalty-free, non-exclusive, perpetual, sublicenseable license to do the +following: + +a) to reproduce the Original Work in copies; + +b) to prepare derivative works ("Derivative Works") based upon the Original +Work; + +c) to distribute copies of the Original Work and Derivative Works to the +public; + +d) to perform the Original Work publicly; and + +e) to display the Original Work publicly. + +2) Grant of Patent License. Licensor hereby grants You a world-wide, +royalty-free, non-exclusive, perpetual, sublicenseable license, under patent +claims owned or controlled by the Licensor that are embodied in the Original +Work as furnished by the Licensor, to make, use, sell and offer for sale the +Original Work and Derivative Works. + +3) Grant of Source Code License. The term "Source Code" means the preferred +form of the Original Work for making modifications to it and all available +documentation describing how to modify the Original Work. Licensor hereby +agrees to provide a machine-readable copy of the Source Code of the Original +Work along with each copy of the Original Work that Licensor distributes. +Licensor reserves the right to satisfy this obligation by placing a +machine-readable copy of the Source Code in an information repository +reasonably calculated to permit inexpensive and convenient access by You for as +long as Licensor continues to distribute the Original Work, and by publishing +the address of that information repository in a notice immediately following +the copyright notice that applies to the Original Work. + +4) Exclusions From License Grant. Neither the names of Licensor, nor the names +of any contributors to the Original Work, nor any of their trademarks or +service marks, may be used to endorse or promote products derived from this +Original Work without express prior written permission of the Licensor. Nothing +in this License shall be deemed to grant any rights to trademarks, copyrights, +patents, trade secrets or any other intellectual property of Licensor except as +expressly stated herein. No patent license is granted to make, use, sell or +offer to sell embodiments of any patent claims other than the licensed claims +defined in Section 2. No right is granted to the trademarks of Licensor even if +such marks are included in the Original Work. Nothing in this License shall be +interpreted to prohibit Licensor from licensing under different terms from this +License any Original Work that Licensor otherwise would have a right to +license. + +5) This section intentionally omitted. + +6) Attribution Rights. You must retain, in the Source Code of any Derivative +Works that You create, all copyright, patent or trademark notices from the +Source Code of the Original Work, as well as any notices of licensing and any +descriptive text identified therein as an "Attribution Notice." You must cause +the Source Code for any Derivative Works that You create to carry a prominent +Attribution Notice reasonably calculated to inform recipients that You have +modified the Original Work. + +7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that +the copyright in and to the Original Work and the patent rights granted herein +by Licensor are owned by the Licensor or are sublicensed to You under the terms +of this License with the permission of the contributor(s) of those copyrights +and patent rights. Except as expressly stated in the immediately proceeding +sentence, the Original Work is provided under this License on an "AS IS" BASIS +and WITHOUT WARRANTY, either express or implied, including, without limitation, +the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. +This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No +license to Original Work is granted hereunder except under this disclaimer. + +8) Limitation of Liability. Under no circumstances and under no legal theory, +whether in tort (including negligence), contract, or otherwise, shall the +Licensor be liable to any person for any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License +or the use of the Original Work including, without limitation, damages for loss +of goodwill, work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses. This limitation of liability shall not +apply to liability for death or personal injury resulting from Licensor's +negligence to the extent applicable law prohibits such limitation. Some +jurisdictions do not allow the exclusion or limitation of incidental or +consequential damages, so this exclusion and limitation may not apply to You. + +9) Acceptance and Termination. If You distribute copies of the Original Work or +a Derivative Work, You must make a reasonable effort under the circumstances to +obtain the express assent of recipients to the terms of this License. Nothing +else but this License (or another written agreement between Licensor and You) +grants You permission to create Derivative Works based upon the Original Work +or to exercise any of the rights granted in Section 1 herein, and any attempt +to do so except under the terms of this License (or another written agreement +between Licensor and You) is expressly prohibited by U.S. copyright law, the +equivalent laws of other countries, and by international treaty. Therefore, by +exercising any of the rights granted to You in Section 1 herein, You indicate +Your acceptance of this License and all of its terms and conditions. + +10) Termination for Patent Action. This License shall terminate automatically +and You may no longer exercise any of the rights granted to You by this License +as of the date You commence an action, including a cross-claim or counterclaim, +against Licensor or any licensee alleging that the Original Work infringes a +patent. This termination provision shall not apply for an action alleging +patent infringement by combinations of the Original Work with other software or +hardware. + +11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this +License may be brought only in the courts of a jurisdiction wherein the +Licensor resides or in which Licensor conducts its primary business, and under +the laws of that jurisdiction excluding its conflict-of-law provisions. The +application of the United Nations Convention on Contracts for the International +Sale of Goods is expressly excluded. Any use of the Original Work outside the +scope of this License or after its termination shall be subject to the +requirements and penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et +seq., the equivalent laws of other countries, and international treaty. This +section shall survive the termination of this License. + +12) Attorneys Fees. In any action to enforce the terms of this License or +seeking damages relating thereto, the prevailing party shall be entitled to +recover its costs and expenses, including, without limitation, reasonable +attorneys' fees and costs incurred in connection with such action, including +any appeal of such action. This section shall survive the termination of this +License. + +13) Miscellaneous. This License represents the complete agreement concerning +the subject matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent necessary to +make it enforceable. + +14) Definition of "You" in This License. "You" throughout this License, whether +in upper or lower case, means an individual or a legal entity exercising rights +under, and complying with all of the terms of, this License. For legal +entities, "You" includes any entity that controls, is controlled by, or is +under common control with you. For purposes of this definition, "control" means +(i) the power, direct or indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (ii) ownership of fifty percent +(50%) or more of the outstanding shares, or (iii) beneficial ownership of such +entity. + +15) Right to Use. You may use the Original Work in all ways not otherwise +restricted or conditioned by this License or by law, and Licensor promises not +to interfere with or be responsible for such uses by You. + +This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. +Permission is hereby granted to copy and distribute this license without +modification. This license may not be modified without the express written +permission of its copyright owner. + json-schema-traverse MIT diff --git a/dist/shared.js b/dist/shared.js index 997d655..5f9d7ee 100644 --- a/dist/shared.js +++ b/dist/shared.js @@ -81,7 +81,7 @@ function parseArguments(versions, boost_version, toolset, platform_version) { continue; } core.debug(`file toolset: ${file["toolset"]}`); - if (toolset != null && toolset.length > 0 && (!file.hasOwnProperty("toolset") || file["toolset"] != toolset)) { + if (toolset && (!file.hasOwnProperty("toolset") || file["toolset"] != toolset)) { core.debug("File does not match param 'toolset'"); continue; } diff --git a/dist/shared.js.map b/dist/shared.js.map index b1e6eaa..e0fd1d3 100644 --- a/dist/shared.js.map +++ b/dist/shared.js.map @@ -1 +1 @@ -{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 4856ef3..d9f1e4b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,701 @@ { "name": "install-boost", - "version": "1.0.0", - "lockfileVersion": 1, + "version": "2.1.0", + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "install-boost", + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "@actions/core": "^1.2.6", + "@actions/github": "^4.0.0", + "request": "^2.88.2", + "request-progress": "^3.0.0" + }, + "devDependencies": { + "@types/request": "^2.48.7", + "@vercel/ncc": "^0.27.0", + "typescript": "^4.1.3" + } + }, + "node_modules/@actions/core": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.6.tgz", + "integrity": "sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==" + }, + "node_modules/@actions/github": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@actions/github/-/github-4.0.0.tgz", + "integrity": "sha512-Ej/Y2E+VV6sR9X7pWL5F3VgEWrABaT292DRqRU6R4hnQjPtC/zD3nagxVdXWiRQvYDh8kHXo7IDmG42eJ/dOMA==", + "dependencies": { + "@actions/http-client": "^1.0.8", + "@octokit/core": "^3.0.0", + "@octokit/plugin-paginate-rest": "^2.2.3", + "@octokit/plugin-rest-endpoint-methods": "^4.0.0" + } + }, + "node_modules/@actions/http-client": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.9.tgz", + "integrity": "sha512-0O4SsJ7q+MK0ycvXPl2e6bMXV7dxAXOGjrXS1eTF9s2S401Tp6c/P3c3Joz04QefC1J6Gt942Wl2jbm3f4mLcg==", + "dependencies": { + "tunnel": "0.0.6" + } + }, + "node_modules/@octokit/auth-token": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.3.tgz", + "integrity": "sha512-fdGoOQ3kQJh+hrilc0Plg50xSfaCKOeYN9t6dpJKXN9BxhhfquL0OzoQXg3spLYymL5rm29uPeI3KEXRaZQ9zg==", + "dependencies": { + "@octokit/types": "^5.0.0" + } + }, + "node_modules/@octokit/core": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.2.1.tgz", + "integrity": "sha512-XfFSDDwv6tclUenS0EmB6iA7u+4aOHBT1Lz4PtQNQQg3hBbNaR/+Uv5URU+egeIuuGAiMRiDyY92G4GBOWOqDA==", + "dependencies": { + "@octokit/auth-token": "^2.4.0", + "@octokit/graphql": "^4.3.1", + "@octokit/request": "^5.4.0", + "@octokit/types": "^5.0.0", + "before-after-hook": "^2.1.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/endpoint": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.9.tgz", + "integrity": "sha512-3VPLbcCuqji4IFTclNUtGdp9v7g+nspWdiCUbK3+iPMjJCZ6LEhn1ts626bWLOn0GiDb6j+uqGvPpqLnY7pBgw==", + "dependencies": { + "@octokit/types": "^5.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/graphql": { + "version": "4.5.7", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.5.7.tgz", + "integrity": "sha512-Gk0AR+DcwIK/lK/GX+OQ99UqtenQhcbrhHHfOYlrCQe17ADnX3EKAOKRsAZ9qZvpi5MuwWm/Nm+9aO2kTDSdyA==", + "dependencies": { + "@octokit/request": "^5.3.0", + "@octokit/types": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.6.0.tgz", + "integrity": "sha512-o+O8c1PqsC5++BHXfMZabRRsBIVb34tXPWyQLyp2IXq5MmkxdipS7TXM4Y9ldL1PzY9CTrCsn/lzFFJGM3oRRA==", + "dependencies": { + "@octokit/types": "^5.5.0" + }, + "peerDependencies": { + "@octokit/core": ">=2" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.2.1.tgz", + "integrity": "sha512-QyFr4Bv807Pt1DXZOC5a7L5aFdrwz71UHTYoHVajYV5hsqffWm8FUl9+O7nxRu5PDMtB/IKrhFqTmdBTK5cx+A==", + "dependencies": { + "@octokit/types": "^5.5.0", + "deprecation": "^2.3.1" + } + }, + "node_modules/@octokit/request": { + "version": "5.4.10", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.10.tgz", + "integrity": "sha512-egA49HkqEORVGDZGav1mh+VD+7uLgOxtn5oODj6guJk0HCy+YBSYapFkSLFgeYj3Fr18ZULKGURkjyhkAChylw==", + "dependencies": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.0.0", + "@octokit/types": "^5.0.0", + "deprecation": "^2.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.1", + "once": "^1.4.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/request-error": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.3.tgz", + "integrity": "sha512-GgD5z8Btm301i2zfvJLk/mkhvGCdjQ7wT8xF9ov5noQY8WbKZDH9cOBqXzoeKd1mLr1xH2FwbtGso135zGBgTA==", + "dependencies": { + "@octokit/types": "^5.0.1", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "node_modules/@octokit/types": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-5.5.0.tgz", + "integrity": "sha512-UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ==", + "dependencies": { + "@types/node": ">= 8" + } + }, + "node_modules/@types/caseless": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz", + "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "14.14.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.7.tgz", + "integrity": "sha512-Zw1vhUSQZYw+7u5dAwNbIA9TuTotpzY/OF7sJM9FqPOF3SPjKnxrjoTktXDZgUjybf4cWVBP7O8wvKdSaGHweg==" + }, + "node_modules/@types/request": { + "version": "2.48.7", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.7.tgz", + "integrity": "sha512-GWP9AZW7foLd4YQxyFZDBepl0lPsWLMEXDZUjQ/c1gqVPDPECrRZyEzuhJdnPWioFCq3Tv0qoGpMD6U+ygd4ZA==", + "dev": true, + "dependencies": { + "@types/caseless": "*", + "@types/node": "*", + "@types/tough-cookie": "*", + "form-data": "^2.5.0" + } + }, + "node_modules/@types/request/node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.1.tgz", + "integrity": "sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg==", + "dev": true + }, + "node_modules/@vercel/ncc": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.27.0.tgz", + "integrity": "sha512-DllIJQapnU2YwewIhh/4dYesmMQw3h2cFtabECc/zSJHqUbNa0eJuEkRa6DXbZvh1YPWBtYQoPV17NlDpBw1Vw==", + "dev": true, + "bin": { + "ncc": "dist/ncc/cli.js" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/before-after-hook": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", + "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==" + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dependencies": { + "mime-db": "1.44.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=" + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "node_modules/typescript": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + }, + "node_modules/uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + } + }, "dependencies": { "@actions/core": { "version": "1.2.6", @@ -352,9 +1045,9 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, "json-schema-traverse": { "version": "0.4.1", @@ -367,13 +1060,13 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.2.3", + "json-schema": "0.4.0", "verror": "1.10.0" } }, diff --git a/package.json b/package.json index 28aa387..16800a2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "install-boost", - "version": "1.0.0", + "version": "2.1.0", "description": "", "main": "index.js", "scripts": { diff --git a/src/index.ts b/src/index.ts index 3df66fc..d6cbba6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,7 +5,7 @@ import * as core from "@actions/core"; import * as path from "path"; var BOOST_ROOT_DIR: string = path.join(process.env.GITHUB_WORKSPACE, 'boost'); -const VERSION: string = "2.beta.1"; +const VERSION: string = "2.1.0"; async function main(): Promise { const boost_version: string = core.getInput("boost_version"); @@ -23,18 +23,22 @@ async function main(): Promise { console.log(`The install directory was manually changed to ${BOOST_ROOT_DIR}`); } - if (script_version.length <= 0) { + if (!script_version) { script_version = "default"; } + if (!platform_version) { + core.warning("The 'platform_version' input is unset. This may lead to inconsistent build results."); + } + + if (!toolset && process.platform === "win32") { + core.warning("The 'toolset' input is unset. This may lead to inconsistent build results."); + } + if (script_version === "legacy") { await installV1(boost_version, toolset, platform_version, BOOST_ROOT_DIR); } else if (script_version === "default") { - if (toolset.length > 0) { - throw new Error("The 'toolset' option can only be used when the script version is set to 'legacy'"); - } - - await installV2(boost_version, platform_version, BOOST_ROOT_DIR); + await installV2(boost_version, toolset, platform_version, BOOST_ROOT_DIR); } else { throw new Error("Invalid value entered for option 'version'"); } diff --git a/src/installV2.ts b/src/installV2.ts index 572417d..1e1788f 100644 --- a/src/installV2.ts +++ b/src/installV2.ts @@ -4,12 +4,12 @@ import { cleanup, createDirectory, downloadBoost, getVersions, parseArguments, u const VERSION_MANIFEST_ADDR: string = "https://raw.githubusercontent.com/MarkusJx/prebuilt-boost/main/versions-manifest.json"; -export default async function installV2(boost_version: string, platform_version: string, BOOST_ROOT_DIR: string): Promise { +export default async function installV2(boost_version: string, toolset: string, platform_version: string, BOOST_ROOT_DIR: string): Promise { console.log("Downloading versions-manifest.json..."); const versions: object[] = await getVersions(VERSION_MANIFEST_ADDR); console.log("Parsing versions-manifest.json..."); - const ver_data = parseArguments(versions, boost_version, null, platform_version); + const ver_data = parseArguments(versions, boost_version, toolset, platform_version); const download_url: string = ver_data.url; const filename: string = ver_data.filename; diff --git a/src/shared.ts b/src/shared.ts index 05770f2..57bd475 100644 --- a/src/shared.ts +++ b/src/shared.ts @@ -79,7 +79,7 @@ export function parseArguments(versions: object[], boost_version: string, toolse } core.debug(`file toolset: ${file["toolset"]}`); - if (toolset != null && toolset.length > 0 && (!file.hasOwnProperty("toolset") || file["toolset"] != toolset)) { + if (toolset && (!file.hasOwnProperty("toolset") || file["toolset"] != toolset)) { core.debug("File does not match param 'toolset'"); continue; } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 0360ee3..1da64b9 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -16,5 +16,11 @@ add_executable(${PROJECT_NAME} test.cpp) target_link_directories(${PROJECT_NAME} PUBLIC ${Boost_LIBRARY_DIRS}) if (NOT WIN32) + message(STATUS "Building on linux/macOs") target_link_libraries(${PROJECT_NAME} PRIVATE dl pthread ${Boost_LIBRARIES}) +elseif (MSYS OR MINGW) + message(STATUS "Building on msys/mingw") + target_link_libraries(${PROJECT_NAME} PRIVATE pthread ${Boost_LIBRARIES}) +else () + message(STATUS "Building on windows") endif ()