diff --git a/dist/publish-crates-debian-main.js b/dist/publish-crates-debian-main.js index bd80651..6020861 100644 --- a/dist/publish-crates-debian-main.js +++ b/dist/publish-crates-debian-main.js @@ -127682,20 +127682,17 @@ __nccwpck_require__.a(module, async (__webpack_handle_async_dependencies__, __we /* unused harmony export cleanup */ /* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(73292); /* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nccwpck_require__.n(fs_promises__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var zlib__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(59796); -/* harmony import */ var zlib__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nccwpck_require__.n(zlib__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _actions_core__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(42186); -/* harmony import */ var _actions_core__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nccwpck_require__.n(_actions_core__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _actions_artifact__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(79450); -/* harmony import */ var _actions_artifact__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__nccwpck_require__.n(_actions_artifact__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _ssh__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(27149); -/* harmony import */ var _command__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(28121); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(71017); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__nccwpck_require__.n(path__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _build_crates_debian__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(22771); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_build_crates_debian__WEBPACK_IMPORTED_MODULE_7__]); -_build_crates_debian__WEBPACK_IMPORTED_MODULE_7__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - +/* harmony import */ var _actions_core__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(42186); +/* harmony import */ var _actions_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nccwpck_require__.n(_actions_core__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _actions_artifact__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(79450); +/* harmony import */ var _actions_artifact__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nccwpck_require__.n(_actions_artifact__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _ssh__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(27149); +/* harmony import */ var _command__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(28121); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(71017); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__nccwpck_require__.n(path__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _build_crates_debian__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(22771); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_build_crates_debian__WEBPACK_IMPORTED_MODULE_6__]); +_build_crates_debian__WEBPACK_IMPORTED_MODULE_6__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; @@ -127703,18 +127700,18 @@ _build_crates_debian__WEBPACK_IMPORTED_MODULE_7__ = (__webpack_async_dependencie -const artifact = new _actions_artifact__WEBPACK_IMPORTED_MODULE_3__.DefaultArtifactClient(); +const artifact = new _actions_artifact__WEBPACK_IMPORTED_MODULE_2__.DefaultArtifactClient(); const sourcesListName = "publish-crates-debian.list"; const sourcesListDir = "/etc/apt/sources.list.d"; function setup() { - const liveRun = _actions_core__WEBPACK_IMPORTED_MODULE_2__.getBooleanInput("live-run", { required: true }); - const version = _actions_core__WEBPACK_IMPORTED_MODULE_2__.getInput("version", { required: true }); - const sshHost = _actions_core__WEBPACK_IMPORTED_MODULE_2__.getInput("ssh-host", { required: true }); - const sshHostPath = _actions_core__WEBPACK_IMPORTED_MODULE_2__.getInput("ssh-host-path", { required: true }); - const sshPrivateKey = _actions_core__WEBPACK_IMPORTED_MODULE_2__.getInput("ssh-private-key", { required: true }); - const sshPassphrase = _actions_core__WEBPACK_IMPORTED_MODULE_2__.getInput("ssh-passphrase", { required: true }); - const installationTest = _actions_core__WEBPACK_IMPORTED_MODULE_2__.getBooleanInput("installation-test", { required: true }); - const repo = _actions_core__WEBPACK_IMPORTED_MODULE_2__.getInput("repo", { required: true }); + const liveRun = _actions_core__WEBPACK_IMPORTED_MODULE_1__.getBooleanInput("live-run", { required: true }); + const version = _actions_core__WEBPACK_IMPORTED_MODULE_1__.getInput("version", { required: true }); + const sshHost = _actions_core__WEBPACK_IMPORTED_MODULE_1__.getInput("ssh-host", { required: true }); + const sshHostPath = _actions_core__WEBPACK_IMPORTED_MODULE_1__.getInput("ssh-host-path", { required: true }); + const sshPrivateKey = _actions_core__WEBPACK_IMPORTED_MODULE_1__.getInput("ssh-private-key", { required: true }); + const sshPassphrase = _actions_core__WEBPACK_IMPORTED_MODULE_1__.getInput("ssh-passphrase", { required: true }); + const installationTest = _actions_core__WEBPACK_IMPORTED_MODULE_1__.getBooleanInput("installation-test", { required: true }); + const repo = _actions_core__WEBPACK_IMPORTED_MODULE_1__.getInput("repo", { required: true }); return { liveRun, version, @@ -127726,26 +127723,14 @@ function setup() { repo, }; } -function gzip(input) { - return new Promise((resolve, reject) => { - zlib__WEBPACK_IMPORTED_MODULE_1__.gzip(input, { level: 9 }, (error, buffer) => { - if (!error) { - resolve(buffer); - } - else { - reject(error); - } - }); - }); -} async function main(input) { try { const results = await artifact.listArtifacts({ latest: true }); for (const result of results.artifacts) { - if (_build_crates_debian__WEBPACK_IMPORTED_MODULE_7__/* .artifactRegExp.test */ .cx.test(result.name)) { + if (_build_crates_debian__WEBPACK_IMPORTED_MODULE_6__/* .artifactRegExp.test */ .cx.test(result.name)) { const { downloadPath } = await artifact.downloadArtifact(result.id); - const archive = path__WEBPACK_IMPORTED_MODULE_6___default().join(downloadPath, result.name); - (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)(`unzip ${archive} -d ${input.version}`); + const archive = path__WEBPACK_IMPORTED_MODULE_5___default().join(downloadPath, result.name); + (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)(`unzip ${archive} -d ${input.version}`); } } // repo is actually owner/repo so we have to split it here to get only the git repo name @@ -127754,44 +127739,43 @@ async function main(input) { const packagesPath = `.Packages-${gitRepo}-${input.version}`; const allPackagesPath = "Packages"; const allPackagesGzippedPath = "Packages.gz"; - await _ssh__WEBPACK_IMPORTED_MODULE_4__/* .withIdentity */ .Y(input.sshPrivateKey, input.sshPassphrase, env => { - (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)(`scp -v -o StrictHostKeyChecking=no -r ${debianRepo}/.Packages-* ./`, { check: false, env }); + await _ssh__WEBPACK_IMPORTED_MODULE_3__/* .withIdentity */ .Y(input.sshPrivateKey, input.sshPassphrase, env => { + (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)(`scp -v -o StrictHostKeyChecking=no -r ${debianRepo}/.Packages-* ./`, { check: false, env }); }); - (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)("sudo apt-get update"); - (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)("sudo apt-get install -y dpkg-dev"); - await fs_promises__WEBPACK_IMPORTED_MODULE_0__.writeFile(packagesPath, (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)(`dpkg-scanpackages --multiversion ${input.version}`)); + (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)("sudo apt-get update"); + (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)("sudo apt-get install -y dpkg-dev"); + await fs_promises__WEBPACK_IMPORTED_MODULE_0__.writeFile(packagesPath, (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)(`dpkg-scanpackages --multiversion ${input.version}`)); // NOTE: An unzipped package index is necessary for apt-get to recognize the // local repository created below - const packages = (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)(`cat .Packages-*`, { quiet: true }); - await fs_promises__WEBPACK_IMPORTED_MODULE_0__.writeFile(allPackagesPath, packages); - await fs_promises__WEBPACK_IMPORTED_MODULE_0__.writeFile(allPackagesGzippedPath, await gzip(packages)); - (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)("ls -R"); - _actions_core__WEBPACK_IMPORTED_MODULE_2__.info(`Adding a local Debian repository at ${process.cwd()}`); + (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)(`cat .Packages-* > ${allPackagesPath}`, { quiet: true }); + (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)(`gzip -k -9 ${allPackagesPath}`, { quiet: true }); + (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)("ls -R"); + _actions_core__WEBPACK_IMPORTED_MODULE_1__.info(`Adding a local Debian repository at ${process.cwd()}`); await fs_promises__WEBPACK_IMPORTED_MODULE_0__.writeFile(sourcesListName, `deb [trusted=yes] file:${process.cwd()} /`); // NOTE: We cannot write zenoh.list directly into /etc/apt/sources.list.d as // that requires sudo - (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)(`sudo cp ${sourcesListName} ${sourcesListDir}`); - (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)(`cat ${sourcesListDir}/${sourcesListName}`); - (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)("sudo apt-get update"); + (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)(`sudo cp ${sourcesListName} ${sourcesListDir}`); + (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)(`cat ${sourcesListDir}/${sourcesListName}`); + (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)("sudo apt-get update"); if (input.installationTest) { const debs = new Set(); for await (const dirent of await fs_promises__WEBPACK_IMPORTED_MODULE_0__.opendir(input.version)) { - const debPath = path__WEBPACK_IMPORTED_MODULE_6___default().join(dirent.path, dirent.name); - const package_ = (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)(`dpkg-deb --field ${debPath} Package`).trim(); + const debPath = path__WEBPACK_IMPORTED_MODULE_5___default().join(dirent.path, dirent.name); + const package_ = (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)(`dpkg-deb --field ${debPath} Package`).trim(); debs.add(package_); } debs.forEach(deb => { - (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)(`sudo apt-get install -y ${deb}`); + (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)(`sudo apt-get install -y ${deb}`); }); debs.forEach(deb => { - (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)(`sudo dpkg --purge --force-all ${deb}`); + (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)(`sudo dpkg --purge --force-all ${deb}`); }); } if (input.liveRun) { - await _ssh__WEBPACK_IMPORTED_MODULE_4__/* .withIdentity */ .Y(input.sshPrivateKey, input.sshPassphrase, env => { + await _ssh__WEBPACK_IMPORTED_MODULE_3__/* .withIdentity */ .Y(input.sshPrivateKey, input.sshPassphrase, env => { const files = [allPackagesGzippedPath, packagesPath, input.version].join(" "); - (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)(`ssh -v -o StrictHostKeyChecking=no ${input.sshHost} mkdir -p ${input.sshHostPath}`, { env }); - (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)(`scp -v -o StrictHostKeyChecking=no -r ${files} ${debianRepo}`, { env }); + (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)(`ssh -v -o StrictHostKeyChecking=no ${input.sshHost} mkdir -p ${input.sshHostPath}`, { env }); + (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)(`scp -v -o StrictHostKeyChecking=no -r ${files} ${debianRepo}`, { env }); }); } cleanup(); @@ -127799,11 +127783,11 @@ async function main(input) { catch (error) { cleanup(); if (error instanceof Error) - _actions_core__WEBPACK_IMPORTED_MODULE_2__.setFailed(error.message); + _actions_core__WEBPACK_IMPORTED_MODULE_1__.setFailed(error.message); } } function cleanup() { - (0,_command__WEBPACK_IMPORTED_MODULE_5__.sh)(`sudo rm ${sourcesListDir}/${sourcesListName}`, { check: false }); + (0,_command__WEBPACK_IMPORTED_MODULE_4__.sh)(`sudo rm ${sourcesListDir}/${sourcesListName}`, { check: false }); } __webpack_async_result__(); diff --git a/src/publish-crates-debian.ts b/src/publish-crates-debian.ts index 48f70e6..c1ecb8d 100644 --- a/src/publish-crates-debian.ts +++ b/src/publish-crates-debian.ts @@ -1,5 +1,4 @@ import * as fs from "fs/promises"; -import * as zlib from "zlib"; import * as core from "@actions/core"; import { DefaultArtifactClient } from "@actions/artifact"; @@ -48,18 +47,6 @@ export function setup(): Input { }; } -function gzip(input: string): Promise { - return new Promise((resolve, reject) => { - zlib.gzip(input, { level: 9 }, (error, buffer) => { - if (!error) { - resolve(buffer); - } else { - reject(error); - } - }); - }); -} - export async function main(input: Input) { try { const results = await artifact.listArtifacts({ latest: true }); @@ -88,9 +75,8 @@ export async function main(input: Input) { await fs.writeFile(packagesPath, sh(`dpkg-scanpackages --multiversion ${input.version}`)); // NOTE: An unzipped package index is necessary for apt-get to recognize the // local repository created below - const packages = sh(`cat .Packages-*`, { quiet: true }); - await fs.writeFile(allPackagesPath, packages); - await fs.writeFile(allPackagesGzippedPath, await gzip(packages)); + sh(`cat .Packages-* > ${allPackagesPath}`, { quiet: true }); + sh(`gzip -k -9 ${allPackagesPath}`, { quiet: true }); sh("ls -R"); core.info(`Adding a local Debian repository at ${process.cwd()}`);