Compare commits

..

104 Commits

Author SHA1 Message Date
github-actions[bot] b20d6d6a48 Automatic compilation 2023-10-10 20:24:06 +00:00
Cina Saffary 0e6f0d3080 Merge pull request #192 from cloudflare/changeset-release/main
Version Packages
2023-10-10 15:23:32 -05:00
github-actions[bot] 326ba30882 Version Packages 2023-10-10 20:20:04 +00:00
Cina Saffary 032a7248fa Merge pull request #188 from simpleauthority/feat/add-bun-support
Add bun support
2023-10-10 15:19:09 -05:00
Jacob Andersen 080373bdb6 Add bun as a package manager option in action.yml 2023-10-10 13:17:05 -07:00
Cina Saffary 231d787db1 Update test/bun/package.json 2023-10-10 15:05:59 -05:00
Jacob Andersen d9a0a00f8b Add changeset 2023-10-10 12:41:00 -07:00
Jacob Andersen 779191a652 add bun support 2023-10-10 12:36:03 -07:00
Cina Saffary 556068fb59 Merge pull request #191 from cloudflare/changeset-release/main
Version Packages
2023-10-10 09:25:51 -05:00
github-actions[bot] caa59485d0 Version Packages 2023-10-10 14:16:00 +00:00
Cina Saffary c2494c1ca6 Merge pull request #190 from cloudflare/cina/180-fix-undefined-package-manager
Use npm as fallback if no `packageManager` specified
2023-10-10 09:14:13 -05:00
Cina Saffary 528687aaf4 Refactor to use npm as a fallback if no packageManager specified...
and no lockfile is present. Fixes #180
2023-10-09 17:20:09 -05:00
lrapoport-cf bd50d10af9 Merge pull request #185 from cloudflare/lrapoport/fix-issue-workflow
Fix issue workflow
2023-10-05 15:34:02 -04:00
lrapoport-cf 2513ffc6cc Fix workflow syntax for multiple conditions 2023-10-05 15:29:35 -04:00
lrapoport-cf 9df50d42e4 Merge pull request #182 from cloudflare/lrapoport/update-issues-workflow
Update issues workflow
2023-10-05 15:06:06 -04:00
lrapoport-cf 4611c14c05 Fix format 2023-10-05 15:01:41 -04:00
lrapoport-cf ac3f259fcf Add PR workflow 2023-10-02 11:29:17 -04:00
lrapoport-cf b2645622e9 Rename issue workflow and job 2023-10-02 11:29:03 -04:00
lrapoport-cf f4e6269765 Add transferred issues to workers-sdk GH project 2023-10-02 11:26:14 -04:00
Cina Saffary 72931e59b2 Merge pull request #174 from cloudflare/changeset-release/main
Version Packages
2023-10-02 10:23:58 -05:00
github-actions[bot] e0254d06bc Version Packages 2023-09-18 19:12:19 +00:00
Jacob M-G Evans 13d70757d2 Merge pull request #166 from nix6839/many-package-manager
Support many package managers
2023-09-18 14:11:51 -05:00
Han Yeong-woo aec73ae744 Add wangler files in fixtures 2023-09-19 03:52:00 +09:00
Han Yeong-woo f0cc3efccf Install yarn and pnpm on test 2023-09-19 03:51:27 +09:00
Han Yeong-woo 50b529e7b8 Fix pass arg issue 2023-09-19 03:50:54 +09:00
Han Yeong-woo 6771675815 Run format 2023-09-19 01:37:01 +09:00
Jacob M-G Evans 4ae0557f8d Update two-rocks-hope.md 2023-09-18 11:33:50 -05:00
Han Yeong-woo 7d7b98826e Add changeset 2023-09-19 01:30:36 +09:00
Han Yeong-woo d1073d57ba Run format 2023-09-19 01:30:35 +09:00
Han Yeong-woo c3b99e2c18 Ignore to pnpm-lock.yaml in formatting 2023-09-19 01:30:35 +09:00
Han Yeong-woo 2375787b23 Move test fixtures to parent directory 2023-09-19 01:30:35 +09:00
Han Yeong-woo 11f981cea4 Add tests for package managers support 2023-09-19 01:30:34 +09:00
Han Yeong-woo 868dbd9a40 Remove unused function 2023-09-19 01:30:34 +09:00
Han Yeong-woo a009342d77 Add packageManager setting 2023-09-19 01:30:34 +09:00
Han Yeong-woo f2e4cda4dd Detect package manager and uses its commands
Fix #156
2023-09-19 01:30:33 +09:00
Han Yeong-woo f4f2e854d7 Add isValidPackcageManager() util 2023-09-19 01:30:33 +09:00
Han Yeong-woo cbe5f5b523 Add detect package manager util function 2023-09-19 01:30:33 +09:00
Jacob M-G Evans fcf2d83f3d Merge pull request #172 from cloudflare/demosjarco/main
Node 20 update
2023-09-18 11:29:49 -05:00
DemosJarco f5d1ca36ae Added comment with link 2023-09-04 11:54:36 -07:00
DemosJarco 4d6d6abfb4 Update action.yml 2023-09-04 11:50:59 -07:00
Cina Saffary 416205365a Merge pull request #165 from cloudflare/cina/fix-release-workflow-pt2
Build action before pushing dist-tags
2023-08-31 10:55:48 -05:00
Cina Saffary 7292a4ae99 Build action before pushing dist-tags 2023-08-31 10:26:14 -05:00
Cina Saffary 4528b66125 Merge pull request #164 from cloudflare/cina/fix-release-workflow
add `tag_name` input to Tag & Release Action step of release workflow
2023-08-31 09:51:29 -05:00
Cina Saffary ee3e2a9b37 add tag_name input to Tag & Release Action 2023-08-30 17:27:17 -05:00
Cina Saffary 361844799a Merge pull request #163 from cloudflare/changeset-release/main
Version Packages
2023-08-30 09:39:11 -05:00
github-actions[bot] 26103fa86c Version Packages 2023-08-30 14:04:59 +00:00
Cina Saffary 47d4afdbd8 Merge pull request #161 from cloudflare/cina/throw-on-failures
Refactor error handling to stop execution on errors
2023-08-30 09:04:22 -05:00
Cina Saffary d7637bf514 workaround to fix failing workflow. Refs #162
The action fails to upload secrets during one of the testing steps since the Worker doesn't exist yet.
2023-08-29 19:39:50 -05:00
Cina Saffary 71199d2757 prettier scripts incorrectly set --ignore-path
--ignore-path is meant to be the path of an ignore-file, not the actual directories to ignore.
2023-08-29 18:27:03 -05:00
Cina Saffary 2962e94ac8 Move unit-tested modules into utils file
This fixes the issue where running the unit tests invoked the entire action since index.ts calls `main()` at the top-level scope.
2023-08-29 18:16:41 -05:00
Cina Saffary 5517edbb28 Avoid double "Error: Error:" logging 2023-08-29 18:00:03 -05:00
Cina Saffary f74c325efc Limit error logging on secret upload 2023-08-29 17:57:19 -05:00
Cina Saffary 105f191b19 Update snapshot for checkWorkingDirectory test 2023-08-29 17:43:29 -05:00
Cina Saffary e5251df521 Refactor error handling to stop execution on errors. Fixes #160. 2023-08-29 16:36:50 -05:00
Jacob M-G Evans b076e889fb Merge pull request #159 from cloudflare/jacobmgevans/gh-workflow
Automation release
2023-08-24 15:45:07 -05:00
Jacob M-G Evans 30e126d1a4 consolidated workflows and triggers Action release based on changeset event output 'publish' being true 2023-08-24 15:35:32 -05:00
Jacob M-G Evans fcf648c789 Merge pull request #158 from cloudflare/changeset-release/main
Version Packages
2023-08-17 11:06:50 -05:00
github-actions[bot] fcbabec21e Version Packages 2023-08-16 15:55:01 +00:00
Jacob M-G Evans 0aa12f0c2b Merge pull request #154 from cloudflare/jacobmgevans/silence-mode
Quiet feature
2023-08-16 10:54:36 -05:00
Jacob M-G Evans ad7441b6ad Merge pull request #157 from EstebanBorai/main
fix: use `wrangler@3.5.1` by default
2023-08-16 10:51:54 -05:00
Jacob M-G Evans 3f40637a1c Quiet feature
Some of the stderr, stdout, info & groupings can be a little noisy for some users and use cases.
This feature allows for a option to be passed 'quiet: true' this would significantly reduce the noise.

There will still be output that lets the user know Wrangler Installed and Wrangler Action completed successfully.
Any failure status will still be output to the user as well, to prevent silent failures.

resolves #142
2023-08-16 09:37:29 -05:00
Esteban Borai 4132892387 fix: use wrangler@3.5.1 by default 2023-08-15 17:23:30 -04:00
lrapoport-cf 62ce9d23a3 Merge pull request #155 from ethanppl/fix-readme
Fix examples in README.md
2023-08-14 13:23:31 -04:00
Ethan f089b0a195 Update README.md
Co-authored-by: lrapoport-cf <107272160+lrapoport-cf@users.noreply.github.com>
2023-08-14 22:06:06 +08:00
Ethan Pang 4318a2fb97 Fix examples in README.md 2023-08-14 18:19:03 +08:00
lrapoport-cf c8bbc2b667 Merge pull request #153 from cloudflare/lrapoport/update-codeowners
Add wrangler-admin as codeowner
2023-08-11 14:32:08 -04:00
lrapoport-cf 3c262de2e3 Add wrangler-admin as codeowner 2023-08-11 14:29:40 -04:00
Jacob M-G Evans 36ba30dcc9 Merge pull request #152 from cloudflare/JacobMGEvans-patch-1
Update README.md
2023-08-11 11:40:47 -05:00
Jacob M-G Evans a9ac89cd00 Update README.md 2023-08-11 11:37:23 -05:00
Jacob M-G Evans 93b26a6664 Merge pull request #151 from cloudflare/jacobmgevans/release-trigger
Changing publish trigger for build & tagging to released or edit
2023-08-10 17:10:35 -05:00
Jacob M-G Evans 9641d961b5 Changing publish trigger for build & tagging to released or edit 2023-08-10 17:09:55 -05:00
Jacob M-G Evans 5b3d60c156 Testing Changeset behavior 2023-08-10 16:51:52 -05:00
Jacob M-G Evans 3252711404 hotfix 2023-08-10 16:46:29 -05:00
Jacob M-G Evans 2faabf36a2 Merge pull request #150 from cloudflare/jacobmgevans/changesets-tag-cli
Changesets needs a tag created for release
2023-08-10 16:45:05 -05:00
Jacob M-G Evans b734d85d74 Changesets needs a tag created for release 2023-08-10 16:40:12 -05:00
Jacob M-G Evans 8ca2ff1612 Merge pull request #148 from cloudflare/changeset-release/main
Version Packages
2023-08-10 16:19:21 -05:00
Jacob M-G Evans 7d08a8657e Merge pull request #149 from cloudflare/jacobmgevans/changesets-needs-publish
Spoofing publish for Changeset Action
2023-08-10 16:18:55 -05:00
Jacob M-G Evans e193627f19 Spoofing publish for Changeset Action 2023-08-10 16:17:56 -05:00
github-actions[bot] 55b80c5f62 Version Packages 2023-08-10 21:11:56 +00:00
Jacob M-G Evans f61dc4d5a9 Merge pull request #147 from cloudflare/revert-146-changeset-release/main
Revert "Version Packages"
2023-08-10 16:11:27 -05:00
Jacob M-G Evans 58f274b9f7 Revert "Version Packages" 2023-08-10 16:11:02 -05:00
Jacob M-G Evans ef7686b259 Merge pull request #146 from cloudflare/changeset-release/main
Version Packages
2023-08-10 16:06:17 -05:00
github-actions[bot] d63b9dc486 Version Packages 2023-08-10 21:06:00 +00:00
Jacob M-G Evans 88ccce72e0 Merge pull request #145 from cloudflare/revert-140-changeset-release/main
Revert "Version Packages"
2023-08-10 16:05:37 -05:00
Jacob M-G Evans 554eea134a Revert "Version Packages" 2023-08-10 16:05:14 -05:00
Jacob M-G Evans a584cc5606 Merge pull request #140 from cloudflare/changeset-release/main
Version Packages
2023-08-10 16:00:53 -05:00
github-actions[bot] 0f5076c3e7 Version Packages 2023-08-10 20:55:38 +00:00
Jacob M-G Evans c7d1bd35bf Merge pull request #143 from cloudflare/jacobmgevans/version-syntax-support
Update documentation to include new versioning syntax support
2023-08-10 15:55:12 -05:00
Jacob M-G Evans 3c728e1d5d Update README.md
Co-authored-by: lrapoport-cf <107272160+lrapoport-cf@users.noreply.github.com>
2023-08-10 15:45:08 -05:00
Jacob M-G Evans a333df3c9e Update documentation to include new versioning syntax support 2023-08-10 15:30:29 -05:00
Jacob M-G Evans bb0133dcfc Merge pull request #141 from cloudflare/jacobmgevans/add-more-error-handling
Additional Error Handling
2023-08-10 14:54:16 -05:00
Jacob M-G Evans 88466ea5ae Update .changeset/itchy-buses-grow.md
Co-authored-by: Cina Saffary <itscina@gmail.com>
2023-08-10 14:51:00 -05:00
Jacob M-G Evans 74433eb31e Additional Error Handling
Previously, we prevented any error logs from propagating too far to prevent leaking of any potentially sensitive information. However, this made it difficult for developers to debug their code.

In this release, we have updated our error handling to allow for more error messaging from pre/post and custom commands. We still discourage the use of these commands for secrets or other sensitive information, but we believe this change will make it easier for developers to debug their code.

Relates to #137
2023-08-10 10:11:35 -05:00
Jacob M-G Evans 559dd40fe6 Merge pull request #139 from cloudflare/jacobmgevans/gh-permissions
Another GH permission for GH Token for Changesets
2023-08-09 16:45:52 -05:00
Jacob M-G Evans 9930080b73 Another GH permission for GH Token for Changesets 2023-08-09 16:39:06 -05:00
Jacob M-G Evans 43bbbb16ab Merge pull request #138 from cloudflare/jacobmgevans/changeset-gh-dep
Add missing GH github dep
2023-08-09 15:42:57 -05:00
Jacob M-G Evans 598c6b4043 Add missing GH github dep 2023-08-09 15:38:59 -05:00
Jacob M-G Evans 0c094f5307 Merge pull request #132 from cloudflare/jacobmgevans/changesets
Add Changesets
2023-08-09 15:28:38 -05:00
Jacob M-G Evans 6ea2e616f2 Update .github/workflows/changesets.yml
Co-authored-by: Cina Saffary <itscina@gmail.com>
2023-08-09 15:17:25 -05:00
Jacob M-G Evans 1b4a61cee9 Remove unnecessary context from fetch depth and node_env 2023-08-09 14:50:06 -05:00
Jacob M-G Evans 8e3876a0c9 Update .github/workflows/changesets.yml
Co-authored-by: Cina Saffary <itscina@gmail.com>
2023-08-09 14:43:50 -05:00
Jacob M-G Evans 8fab856f8d Update .github/workflows/changesets.yml
Co-authored-by: Cina Saffary <itscina@gmail.com>
2023-08-09 14:43:40 -05:00
Jacob M-G Evans ce1ea4e7c3 Merge pull request #136 from cloudflare/jacobmgevans/esm-support
Updating build script to convert to .mjs for ESM support
2023-08-09 11:28:16 -05:00
Jacob M-G Evans 311d514d9d Add Changesets 2023-08-08 17:14:09 -05:00
2 changed files with 212 additions and 131 deletions
+10 -2
View File
@@ -4,7 +4,8 @@ branding:
color: "orange"
description: "Deploy your Cloudflare projects from GitHub using Wrangler"
runs:
using: "node16"
# Possible values: https://github.com/actions/runner/blob/main/src/Runner.Common/Util/NodeUtil.cs#L9
using: "node20"
main: "dist/index.mjs"
inputs:
apiToken:
@@ -13,7 +14,10 @@ inputs:
accountId:
description: "Your Cloudflare Account ID"
required: false
quiet:
description: "Supresses output from Wrangler commands, defaults to `false`"
required: false
default: "false"
environment:
description: "The environment you'd like to deploy your Workers project to - must be defined in wrangler.toml"
workingDirectory:
@@ -37,3 +41,7 @@ inputs:
vars:
description: "A string of environment variable names, separated by newlines. These will be bound to your Worker using the values of matching environment variables declared in `env` of this workflow."
required: false
packageManager:
description: "The package manager you'd like to use to install and run wrangler. If not specified, a value will be inferred based on the presence of a lockfile. Valid values: [npm, pnpm, yarn, bun]"
required: false
default: npm
+202 -129
View File
@@ -2816,11 +2816,8 @@ var __webpack_exports__ = {};
// EXPORTS
__nccwpck_require__.d(__webpack_exports__, {
"kj": () => (/* binding */ authenticationSetup),
"ny": () => (/* binding */ checkWorkingDirectory),
"P8": () => (/* binding */ execCommands),
"wJ": () => (/* binding */ getNpxCmd),
"VH": () => (/* binding */ installWrangler),
"Wp": () => (/* binding */ semverCompare),
"cb": () => (/* binding */ uploadSecrets),
"cj": () => (/* binding */ wranglerCommands)
});
@@ -2829,36 +2826,15 @@ __nccwpck_require__.d(__webpack_exports__, {
var core = __nccwpck_require__(186);
;// CONCATENATED MODULE: external "node:child_process"
const external_node_child_process_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:child_process");
;// CONCATENATED MODULE: external "node:util"
const external_node_util_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:util");
;// CONCATENATED MODULE: external "node:fs"
const external_node_fs_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:fs");
;// CONCATENATED MODULE: external "node:path"
const external_node_path_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:path");
;// CONCATENATED MODULE: external "node:util"
const external_node_util_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:util");
;// CONCATENATED MODULE: ./src/index.ts
;// CONCATENATED MODULE: ./src/utils.ts
const execAsync = external_node_util_namespaceObject.promisify(external_node_child_process_namespaceObject.exec);
const DEFAULT_WRANGLER_VERSION = "3.4.0";
/**
* A configuration object that contains all the inputs & immutable state for the action.
*/
const config = {
WRANGLER_VERSION: (0,core.getInput)("wranglerVersion") || DEFAULT_WRANGLER_VERSION,
secrets: (0,core.getMultilineInput)("secrets"),
workingDirectory: checkWorkingDirectory((0,core.getInput)("workingDirectory")),
CLOUDFLARE_API_TOKEN: (0,core.getInput)("apiToken"),
CLOUDFLARE_ACCOUNT_ID: (0,core.getInput)("accountId"),
ENVIRONMENT: (0,core.getInput)("environment"),
VARS: (0,core.getMultilineInput)("vars"),
COMMANDS: (0,core.getMultilineInput)("command"),
};
function getNpxCmd() {
return process.env.RUNNER_OS === "Windows" ? "npx.cmd" : "npx";
}
/**
* A helper function to compare two semver versions. If the second arg is greater than the first arg, it returns true.
*/
@@ -2875,38 +2851,147 @@ function semverCompare(version1, version2) {
}
return false;
}
async function main() {
installWrangler();
authenticationSetup();
await execCommands((0,core.getMultilineInput)("preCommands"), "Pre");
await uploadSecrets();
await wranglerCommands();
await execCommands((0,core.getMultilineInput)("postCommands"), "Post");
}
function checkWorkingDirectory(workingDirectory = ".") {
try {
const normalizedPath = external_node_path_namespaceObject.normalize(workingDirectory);
if ((0,external_node_fs_namespaceObject.existsSync)(normalizedPath)) {
return normalizedPath;
}
else {
(0,core.setFailed)(`🚨 Directory ${workingDirectory} does not exist.`);
}
const normalizedPath = external_node_path_namespaceObject.normalize(workingDirectory);
if ((0,external_node_fs_namespaceObject.existsSync)(normalizedPath)) {
return normalizedPath;
}
catch (error) {
(0,core.setFailed)(`🚨 While checking/creating directory ${workingDirectory} received ${error}`);
else {
throw new Error(`Directory ${workingDirectory} does not exist.`);
}
}
;// CONCATENATED MODULE: ./src/packageManagers.ts
const PACKAGE_MANAGERS = {
npm: {
install: "npm i",
exec: "npx",
},
yarn: {
install: "yarn add",
exec: "yarn",
},
pnpm: {
install: "pnpm add",
exec: "pnpm exec",
},
bun: {
install: "bun i",
exec: "bunx"
},
};
function detectPackageManager(workingDirectory = ".") {
if ((0,external_node_fs_namespaceObject.existsSync)(external_node_path_namespaceObject.join(workingDirectory, "package-lock.json"))) {
return "npm";
}
if ((0,external_node_fs_namespaceObject.existsSync)(external_node_path_namespaceObject.join(workingDirectory, "yarn.lock"))) {
return "yarn";
}
if ((0,external_node_fs_namespaceObject.existsSync)(external_node_path_namespaceObject.join(workingDirectory, "pnpm-lock.yaml"))) {
return "pnpm";
}
if ((0,external_node_fs_namespaceObject.existsSync)(external_node_path_namespaceObject.join(workingDirectory, "bun.lockb"))) {
return "bun";
}
return null;
}
function assertValidPackageManagerValue(name) {
if (name && !Object.keys(PACKAGE_MANAGERS).includes(name)) {
throw new TypeError(`invalid value provided for "packageManager": ${name}
Value must be one of: [${Object.keys(PACKAGE_MANAGERS).join(", ")}]`);
}
}
function getPackageManager(name, { workingDirectory = "." } = {}) {
assertValidPackageManagerValue(name);
return PACKAGE_MANAGERS[name || detectPackageManager(workingDirectory) || "npm"];
}
;// CONCATENATED MODULE: ./src/index.ts
const execAsync = external_node_util_namespaceObject.promisify(external_node_child_process_namespaceObject.exec);
const DEFAULT_WRANGLER_VERSION = "3.5.1";
/**
* A configuration object that contains all the inputs & immutable state for the action.
*/
const config = {
WRANGLER_VERSION: (0,core.getInput)("wranglerVersion") || DEFAULT_WRANGLER_VERSION,
secrets: (0,core.getMultilineInput)("secrets"),
workingDirectory: checkWorkingDirectory((0,core.getInput)("workingDirectory")),
CLOUDFLARE_API_TOKEN: (0,core.getInput)("apiToken"),
CLOUDFLARE_ACCOUNT_ID: (0,core.getInput)("accountId"),
ENVIRONMENT: (0,core.getInput)("environment"),
VARS: (0,core.getMultilineInput)("vars"),
COMMANDS: (0,core.getMultilineInput)("command"),
QUIET_MODE: (0,core.getBooleanInput)("quiet"),
PACKAGE_MANAGER: (0,core.getInput)("packageManager"),
};
const packageManager = getPackageManager(config.PACKAGE_MANAGER, {
workingDirectory: config.workingDirectory,
});
function info(message, bypass) {
if (!config.QUIET_MODE || bypass) {
(0,core.info)(message);
}
}
function error(message, bypass) {
if (!config.QUIET_MODE || bypass) {
(0,core.error)(message);
}
}
function startGroup(name) {
if (!config.QUIET_MODE) {
(0,core.startGroup)(name);
}
}
function endGroup() {
if (!config.QUIET_MODE) {
(0,core.endGroup)();
}
}
async function main() {
try {
installWrangler();
authenticationSetup();
await execCommands((0,core.getMultilineInput)("preCommands"), "pre");
await uploadSecrets();
await wranglerCommands();
await execCommands((0,core.getMultilineInput)("postCommands"), "post");
info("🏁 Wrangler Action completed", true);
}
catch (err) {
err instanceof Error && error(err.message);
(0,core.setFailed)("🚨 Action failed");
}
}
async function runProcess(command, options) {
try {
const result = await execAsync(command, options);
result.stdout && info(result.stdout.toString());
result.stderr && error(result.stderr.toString(), true);
return result;
}
catch (err) {
err.stdout && info(err.stdout.toString());
err.stderr && error(err.stderr.toString(), true);
throw new Error(`\`${command}\` returned non-zero exit code.`);
}
}
function installWrangler() {
if (config["WRANGLER_VERSION"].startsWith("1")) {
(0,core.setFailed)(`🚨 Wrangler v1 is no longer supported by this action. Please use major version 2 or greater`);
throw new Error(`Wrangler v1 is no longer supported by this action. Please use major version 2 or greater`);
}
(0,core.startGroup)("📥 Installing Wrangler");
const command = `npm install wrangler@${config["WRANGLER_VERSION"]}`;
(0,core.info)(`Running command: ${command}`);
startGroup("📥 Installing Wrangler");
const command = `${packageManager.install} wrangler@${config["WRANGLER_VERSION"]}`;
info(`Running command: ${command}`);
(0,external_node_child_process_namespaceObject.execSync)(command, { cwd: config["workingDirectory"], env: process.env });
(0,core.info)(`✅ Wrangler installed`);
(0,core.endGroup)();
info(`✅ Wrangler installed`, true);
endGroup();
}
function authenticationSetup() {
process.env.CLOUDFLARE_API_TOKEN = config["CLOUDFLARE_API_TOKEN"];
@@ -2916,49 +3001,48 @@ async function execCommands(commands, cmdType) {
if (!commands.length) {
return;
}
(0,core.startGroup)(`🚀 ${cmdType} Commands Group`);
const arrPromises = commands.map(async (command) => {
const cmd = command.startsWith("wrangler")
? `${getNpxCmd()} ${command}`
: command;
(0,core.info)(`🚀 Executing command: ${cmd}`);
return await execAsync(cmd, {
cwd: config["workingDirectory"],
env: process.env,
startGroup(`🚀 Running ${cmdType}Commands`);
try {
const arrPromises = commands.map(async (command) => {
const cmd = command.startsWith("wrangler")
? `${packageManager.exec} ${command}`
: command;
info(`🚀 Executing command: ${cmd}`);
return await runProcess(cmd, {
cwd: config["workingDirectory"],
env: process.env,
});
});
});
await Promise.all(arrPromises);
(0,core.endGroup)();
await Promise.all(arrPromises);
}
finally {
endGroup();
}
}
/**
* A helper function to get the secret from the environment variables.
*/
function getSecret(secret) {
if (!secret) {
(0,core.setFailed)("No secret provided");
throw new Error("Secret name cannot be blank.");
}
const value = process.env[secret];
if (!value) {
(0,core.setFailed)(`Secret ${secret} not found`);
throw new Error(`Value for secret ${secret} not found.`);
}
return value;
}
async function legacyUploadSecrets(secrets, environment, workingDirectory) {
try {
const arrPromises = secrets
.map((secret) => {
const command = `echo ${getSecret(secret)} | ${getNpxCmd()} wrangler secret put ${secret}`;
return environment ? command.concat(`--env ${environment}`) : command;
})
.map(async (command) => await execAsync(command, {
cwd: workingDirectory,
env: process.env,
}));
await Promise.all(arrPromises);
}
catch {
(0,core.setFailed)(`🚨 Error uploading secrets`);
}
const arrPromises = secrets
.map((secret) => {
const command = `echo ${getSecret(secret)} | ${packageManager.exec} wrangler secret put ${secret}`;
return environment ? command.concat(` --env ${environment}`) : command;
})
.map(async (command) => await execAsync(command, {
cwd: workingDirectory,
env: process.env,
}));
await Promise.all(arrPromises);
}
async function uploadSecrets() {
const secrets = config["secrets"];
@@ -2967,8 +3051,8 @@ async function uploadSecrets() {
if (!secrets.length) {
return;
}
startGroup("🔑 Uploading secrets...");
try {
(0,core.startGroup)("🔑 Uploading Secrets");
if (semverCompare(config["WRANGLER_VERSION"], "3.4.0"))
return legacyUploadSecrets(secrets, environment, workingDirectory);
const secretObj = secrets.reduce((acc, secret) => {
@@ -2978,19 +3062,20 @@ async function uploadSecrets() {
const environmentSuffix = !environment.length
? ""
: ` --env ${environment}`;
const secretCmd = `echo "${JSON.stringify(secretObj).replaceAll('"', '\\"')}" | ${getNpxCmd()} wrangler secret:bulk ${environmentSuffix}`;
const secretCmd = `echo "${JSON.stringify(secretObj).replaceAll('"', '\\"')}" | ${packageManager.exec} wrangler secret:bulk ${environmentSuffix}`;
(0,external_node_child_process_namespaceObject.execSync)(secretCmd, {
cwd: workingDirectory,
env: process.env,
stdio: "ignore",
});
(0,core.info)(`✅ Uploaded secrets`);
info(`✅ Uploaded secrets`);
}
catch {
(0,core.setFailed)(`🚨 Error uploading secrets`);
catch (err) {
error(`❌ Upload failed`);
throw new Error(`Failed to upload secrets.`);
}
finally {
(0,core.endGroup)();
endGroup();
}
}
function getVarArgs() {
@@ -3000,63 +3085,51 @@ function getVarArgs() {
return `${envVar}:${process.env[envVar]}`;
}
else {
(0,core.setFailed)(`🚨 ${envVar} not found in variables.`);
throw new Error(`Value for var ${envVar} not found in environment.`);
}
});
return envVarArray.length > 0 ? `--var ${envVarArray.join(" ").trim()}` : "";
}
function defaultCommandBehavior() {
const environment = config["ENVIRONMENT"];
const wranglerVersion = config["WRANGLER_VERSION"];
const workingDirectory = config["workingDirectory"];
const deployCommand = semverCompare("2.20.0", wranglerVersion)
? "deploy"
: "publish";
(0,core.info)(`📌 No Wrangler commands were provided, executing default deployment.`);
if (environment.length === 0) {
(0,external_node_child_process_namespaceObject.execSync)(`${getNpxCmd()} wrangler ${deployCommand} ${getVarArgs()}`.trim(), {
cwd: workingDirectory,
env: process.env,
});
}
else {
(0,external_node_child_process_namespaceObject.execSync)(`${getNpxCmd()} wrangler ${deployCommand} --env ${environment} ${getVarArgs()}`.trim(), { cwd: workingDirectory, env: process.env });
}
(0,core.endGroup)();
}
async function wranglerCommands() {
const commands = config["COMMANDS"];
const environment = config["ENVIRONMENT"];
if (!commands.length) {
defaultCommandBehavior();
return;
}
(0,core.startGroup)("🚀 Executing Wrangler Commands");
const arrPromises = commands.map(async (command) => {
if (environment.length > 0 && !command.includes(`--env ${environment}`)) {
command.concat(`--env ${environment}`);
startGroup("🚀 Running Wrangler Commands");
try {
const commands = config["COMMANDS"];
const environment = config["ENVIRONMENT"];
if (!commands.length) {
const wranglerVersion = config["WRANGLER_VERSION"];
const deployCommand = semverCompare("2.20.0", wranglerVersion)
? "deploy"
: "publish";
commands.push(deployCommand);
}
const result = await execAsync(`${getNpxCmd()} wrangler ${command} ${getVarArgs()}`, {
cwd: config["workingDirectory"],
env: process.env,
const arrPromises = commands.map(async (command) => {
if (environment.length > 0 && !command.includes(`--env`)) {
command = command.concat(` --env ${environment}`);
}
const cmd = `${packageManager.exec} wrangler ${command} ${(command.startsWith("deploy") || command.startsWith("publish")) &&
!command.includes(`--var`)
? getVarArgs()
: ""}`.trim();
info(`🚀 Executing command: ${cmd}`);
return await runProcess(cmd, {
cwd: config["workingDirectory"],
env: process.env,
});
});
(0,core.info)(result.stdout);
return result;
});
await Promise.all(arrPromises);
(0,core.endGroup)();
await Promise.all(arrPromises);
}
finally {
endGroup();
}
}
main().catch(() => (0,core.setFailed)("🚨 Action failed"));
main();
})();
var __webpack_exports__authenticationSetup = __webpack_exports__.kj;
var __webpack_exports__checkWorkingDirectory = __webpack_exports__.ny;
var __webpack_exports__execCommands = __webpack_exports__.P8;
var __webpack_exports__getNpxCmd = __webpack_exports__.wJ;
var __webpack_exports__installWrangler = __webpack_exports__.VH;
var __webpack_exports__semverCompare = __webpack_exports__.Wp;
var __webpack_exports__uploadSecrets = __webpack_exports__.cb;
var __webpack_exports__wranglerCommands = __webpack_exports__.cj;
export { __webpack_exports__authenticationSetup as authenticationSetup, __webpack_exports__checkWorkingDirectory as checkWorkingDirectory, __webpack_exports__execCommands as execCommands, __webpack_exports__getNpxCmd as getNpxCmd, __webpack_exports__installWrangler as installWrangler, __webpack_exports__semverCompare as semverCompare, __webpack_exports__uploadSecrets as uploadSecrets, __webpack_exports__wranglerCommands as wranglerCommands };
export { __webpack_exports__authenticationSetup as authenticationSetup, __webpack_exports__execCommands as execCommands, __webpack_exports__installWrangler as installWrangler, __webpack_exports__uploadSecrets as uploadSecrets, __webpack_exports__wranglerCommands as wranglerCommands };