@@ -27751,6 +27751,9 @@ function httpRedirectFetch (fetchParams, response) {
27751
27751
// https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name
27752
27752
request.headersList.delete('authorization')
27753
27753
27754
+ // https://fetch.spec.whatwg.org/#authentication-entries
27755
+ request.headersList.delete('proxy-authorization', true)
27756
+
27754
27757
// "Cookie" and "Host" are forbidden request-headers, which undici doesn't implement.
27755
27758
request.headersList.delete('cookie')
27756
27759
request.headersList.delete('host')
@@ -38586,7 +38589,9 @@ __nccwpck_require__.a(module, async (__webpack_handle_async_dependencies__, __we
38586
38589
/* harmony import */ var _src_csvReport_js__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(7925);
38587
38590
/* harmony import */ var _src_isFileExists_js__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(2139);
38588
38591
/* harmony import */ var _src_writeFolderListing_js__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(4362);
38589
- /* harmony import */ var _src_helpers_js__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(3015);
38592
+ /* harmony import */ var _src_helpers_js__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(3015);
38593
+ /* harmony import */ var _src_cleanup_js__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(646);
38594
+
38590
38595
38591
38596
38592
38597
@@ -38604,7 +38609,10 @@ try {
38604
38609
const reportId = _actions_core__WEBPACK_IMPORTED_MODULE_1__.getInput('report_id');
38605
38610
const reportType = _actions_core__WEBPACK_IMPORTED_MODULE_1__.getInput('report_type');
38606
38611
const listDirs = _actions_core__WEBPACK_IMPORTED_MODULE_1__.getInput('list_dirs') == 'true';
38607
- const branchName = (0,_src_helpers_js__WEBPACK_IMPORTED_MODULE_7__/* .getBranchName */ .L)(_actions_github__WEBPACK_IMPORTED_MODULE_2__.context.ref, _actions_github__WEBPACK_IMPORTED_MODULE_2__.context.payload.pull_request);
38612
+ const listDirsBranch = _actions_core__WEBPACK_IMPORTED_MODULE_1__.getInput('list_dirs_branch') == 'true';
38613
+ const branchCleanupEnabled = _actions_core__WEBPACK_IMPORTED_MODULE_1__.getInput('branch_cleanup_enabled') == 'true';
38614
+ const maxReports = parseInt(_actions_core__WEBPACK_IMPORTED_MODULE_1__.getInput('max_reports'), 10);
38615
+ const branchName = (0,_src_helpers_js__WEBPACK_IMPORTED_MODULE_8__/* .getBranchName */ .L)(_actions_github__WEBPACK_IMPORTED_MODULE_2__.context.ref, _actions_github__WEBPACK_IMPORTED_MODULE_2__.context.payload.pull_request);
38608
38616
const reportBaseDir = path__WEBPACK_IMPORTED_MODULE_0__.join(ghPagesPath, baseDir, branchName, reportId);
38609
38617
/**
38610
38618
* `runId` is unique but won't change on job re-run
@@ -38631,6 +38639,9 @@ try {
38631
38639
reportDir,
38632
38640
report_url: reportUrl,
38633
38641
listDirs,
38642
+ listDirsBranch,
38643
+ branchCleanupEnabled,
38644
+ maxReports,
38634
38645
});
38635
38646
if (!(await (0,_src_isFileExists_js__WEBPACK_IMPORTED_MODULE_5__/* .isFileExist */ .e)(ghPagesPath))) {
38636
38647
throw new Error("Folder with gh-pages branch doesn't exist: " + ghPagesPath);
@@ -38655,6 +38666,9 @@ try {
38655
38666
await (0,_src_writeFolderListing_js__WEBPACK_IMPORTED_MODULE_6__/* .writeFolderListing */ .l)(ghPagesPath, '.');
38656
38667
}
38657
38668
await (0,_src_writeFolderListing_js__WEBPACK_IMPORTED_MODULE_6__/* .writeFolderListing */ .l)(ghPagesPath, baseDir);
38669
+ }
38670
+ if (listDirsBranch) {
38671
+ await (0,_src_writeFolderListing_js__WEBPACK_IMPORTED_MODULE_6__/* .writeFolderListing */ .l)(ghPagesPath, path__WEBPACK_IMPORTED_MODULE_0__.join(baseDir, branchName));
38658
38672
await (0,_src_writeFolderListing_js__WEBPACK_IMPORTED_MODULE_6__/* .writeFolderListing */ .l)(ghPagesPath, path__WEBPACK_IMPORTED_MODULE_0__.join(baseDir, branchName));
38659
38673
if (reportType === 'html') {
38660
38674
await (0,_src_writeFolderListing_js__WEBPACK_IMPORTED_MODULE_6__/* .writeFolderListing */ .l)(ghPagesPath, path__WEBPACK_IMPORTED_MODULE_0__.join(baseDir, branchName, reportId));
@@ -38663,6 +38677,14 @@ try {
38663
38677
// outputs
38664
38678
_actions_core__WEBPACK_IMPORTED_MODULE_1__.setOutput('report_url', reportUrl);
38665
38679
_actions_core__WEBPACK_IMPORTED_MODULE_1__.setOutput('report_history_url', ghPagesBaseDir);
38680
+ _actions_core__WEBPACK_IMPORTED_MODULE_1__.setOutput('run_unique_id', runUniqueId);
38681
+ _actions_core__WEBPACK_IMPORTED_MODULE_1__.setOutput('report_path', reportDir);
38682
+ if (branchCleanupEnabled) {
38683
+ await (0,_src_cleanup_js__WEBPACK_IMPORTED_MODULE_7__/* .cleanupOutdatedBranches */ .B)(ghPagesBaseDir);
38684
+ }
38685
+ if (maxReports > 0) {
38686
+ await (0,_src_cleanup_js__WEBPACK_IMPORTED_MODULE_7__/* .cleanupOutdatedReports */ .g)(ghPagesBaseDir, maxReports);
38687
+ }
38666
38688
}
38667
38689
catch (error) {
38668
38690
_actions_core__WEBPACK_IMPORTED_MODULE_1__.setFailed(error.message);
@@ -38671,6 +38693,107 @@ catch (error) {
38671
38693
__webpack_async_result__();
38672
38694
} catch(e) { __webpack_async_result__(e); } }, 1);
38673
38695
38696
+ /***/ }),
38697
+
38698
+ /***/ 646:
38699
+ /***/ ((__unused_webpack_module, __webpack_exports__, __nccwpck_require__) => {
38700
+
38701
+
38702
+ // EXPORTS
38703
+ __nccwpck_require__.d(__webpack_exports__, {
38704
+ "B": () => (/* binding */ cleanupOutdatedBranches),
38705
+ "g": () => (/* binding */ cleanupOutdatedReports)
38706
+ });
38707
+
38708
+ // EXTERNAL MODULE: external "path"
38709
+ var external_path_ = __nccwpck_require__(1017);
38710
+ // EXTERNAL MODULE: external "fs/promises"
38711
+ var promises_ = __nccwpck_require__(3292);
38712
+ ;// CONCATENATED MODULE: external "child_process"
38713
+ const external_child_process_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("child_process");
38714
+ ;// CONCATENATED MODULE: ./src/spawnProcess.ts
38715
+
38716
+ const logError = (err, output) => {
38717
+ console.log(output.join(''));
38718
+ return err;
38719
+ };
38720
+ const spawnProcess = async (command, args, cwd) => {
38721
+ const childProcess = external_child_process_namespaceObject.spawn(command, args, { cwd });
38722
+ return new Promise((resolve, reject) => {
38723
+ const output = [];
38724
+ const r1 = childProcess.stdout?.on('data', (d) => output.push(d.toString()));
38725
+ const r2 = childProcess.stderr?.on('data', (d) => output.push(d.toString()));
38726
+ const p1 = new Promise((resolve) => (r1 ? r1.once('close', resolve) : resolve()));
38727
+ const p2 = new Promise((resolve) => (r2 ? r2.once('close', resolve) : resolve()));
38728
+ childProcess.once('error', (err) => reject(logError(err, output)));
38729
+ childProcess.once('exit', async (code) => {
38730
+ r1?.removeAllListeners('data');
38731
+ r2?.removeAllListeners('data');
38732
+ await p1;
38733
+ await p2;
38734
+ return code === 0 ? resolve(output.join('')) : reject(logError(code, output));
38735
+ });
38736
+ });
38737
+ };
38738
+
38739
+ // EXTERNAL MODULE: ./src/helpers.ts
38740
+ var helpers = __nccwpck_require__(3015);
38741
+ ;// CONCATENATED MODULE: ./src/cleanup.ts
38742
+
38743
+
38744
+
38745
+
38746
+ const cleanupOutdatedBranches = async (ghPagesBaseDir) => {
38747
+ try {
38748
+ const prefix = 'refs/heads/';
38749
+ const lsRemote = await spawnProcess('git', ['ls-remote', '--heads']);
38750
+ const remoteBranches = lsRemote
38751
+ .split('\n')
38752
+ .filter((l) => l.includes(prefix))
38753
+ .map((l) => (0,helpers/* normalizeBranchName */.i)(l.split(prefix)[1]));
38754
+ const localBranches = (await promises_.readdir(ghPagesBaseDir, { withFileTypes: true })).filter((d) => d.isDirectory()).map((d) => d.name);
38755
+ for (const localBranch of localBranches) {
38756
+ if (!remoteBranches.includes(localBranch)) {
38757
+ await promises_.rm(external_path_.join(ghPagesBaseDir, localBranch), { recursive: true, force: true });
38758
+ }
38759
+ }
38760
+ }
38761
+ catch (err) {
38762
+ console.error('cleanup outdated branches failed.', err);
38763
+ }
38764
+ };
38765
+ const cleanupOutdatedReports = async (ghPagesBaseDir, maxReports) => {
38766
+ try {
38767
+ const localBranches = (await promises_.readdir(ghPagesBaseDir, { withFileTypes: true })).filter((d) => d.isDirectory()).map((d) => d.name);
38768
+ // branches
38769
+ for (const localBranch of localBranches) {
38770
+ const reports = (await promises_.readdir(external_path_.join(ghPagesBaseDir, localBranch), { withFileTypes: true }))
38771
+ .filter((d) => d.isDirectory())
38772
+ .map((d) => d.name);
38773
+ // report per branch
38774
+ for (const reportName of reports) {
38775
+ const runs = (await promises_.readdir(external_path_.join(ghPagesBaseDir, localBranch, reportName), { withFileTypes: true }))
38776
+ .filter((d) => d.isDirectory())
38777
+ .map((d) => d.name);
38778
+ // run per report
38779
+ if (runs.length > maxReports) {
38780
+ runs.sort();
38781
+ while (runs.length > maxReports) {
38782
+ await promises_.rm(external_path_.join(ghPagesBaseDir, localBranch, reportName, runs.shift()), {
38783
+ recursive: true,
38784
+ force: true,
38785
+ });
38786
+ }
38787
+ }
38788
+ }
38789
+ }
38790
+ }
38791
+ catch (err) {
38792
+ console.error('cleanup outdated reports failed.', err);
38793
+ }
38794
+ };
38795
+
38796
+
38674
38797
/***/ }),
38675
38798
38676
38799
/***/ 7925:
@@ -38788,11 +38911,13 @@ const csvReport = async (sourceReportDir, reportBaseDir, reportId, meta) => {
38788
38911
/***/ ((__unused_webpack_module, __webpack_exports__, __nccwpck_require__) => {
38789
38912
38790
38913
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
38791
- /* harmony export */ "L": () => (/* binding */ getBranchName)
38914
+ /* harmony export */ "L": () => (/* binding */ getBranchName),
38915
+ /* harmony export */ "i": () => (/* binding */ normalizeBranchName)
38792
38916
/* harmony export */ });
38917
+ const normalizeBranchName = (branchName) => branchName.replaceAll('/', '_').replaceAll('.', '_');
38793
38918
const getBranchName = (gitRef, pull_request) => {
38794
38919
const branchName = pull_request ? pull_request.head.ref : gitRef.replace('refs/heads/', '');
38795
- return branchName.replaceAll('/', '_').replaceAll('.', '_' );
38920
+ return normalizeBranchName(branchName );
38796
38921
};
38797
38922
38798
38923
0 commit comments