revert to js action
This commit is contained in:
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
. "$(dirname -- "$0")/_/husky.sh"
|
||||||
|
|
||||||
|
# Ensure lockfile is up to date
|
||||||
|
echo "🔒 Updating lockfile..."
|
||||||
|
pnpm install --lockfile-only
|
||||||
|
|
||||||
|
# Build the action before committing
|
||||||
|
echo "🔨 Building action..."
|
||||||
|
pnpm build
|
||||||
|
|
||||||
|
# Add the built files and lockfile to the commit
|
||||||
|
git add entry.cjs pnpm-lock.yaml
|
||||||
+2
-25
@@ -12,31 +12,8 @@ inputs:
|
|||||||
required: false
|
required: false
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: "composite"
|
using: "node20"
|
||||||
steps:
|
main: "entry.cjs"
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 1
|
|
||||||
- name: Setup pnpm
|
|
||||||
uses: pnpm/action-setup@v4
|
|
||||||
with:
|
|
||||||
version: "*"
|
|
||||||
- name: Setup Node.js 24
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: "24"
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pnpm install
|
|
||||||
shell: bash
|
|
||||||
working-directory: ${{ github.action_path }}
|
|
||||||
- name: Run agent
|
|
||||||
run: |
|
|
||||||
cd $GITHUB_WORKSPACE
|
|
||||||
node ${{ github.action_path }}/entry.ts
|
|
||||||
shell: bash
|
|
||||||
env:
|
|
||||||
INPUTS_JSON: ${{ toJSON(inputs) }}
|
|
||||||
|
|
||||||
branding:
|
branding:
|
||||||
icon: "code"
|
icon: "code"
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build entry point - wraps entry.ts to avoid top-level await in CJS output
|
||||||
|
*/
|
||||||
|
|
||||||
|
import * as core from "@actions/core";
|
||||||
|
import { type } from "arktype";
|
||||||
|
import { Inputs, main } from "./main.ts";
|
||||||
|
import packageJson from "./package.json" with { type: "json" };
|
||||||
|
import { log } from "./utils/cli.ts";
|
||||||
|
|
||||||
|
async function run(): Promise<void> {
|
||||||
|
try {
|
||||||
|
log.info(`🐸 Running pullfrog/action@${packageJson.version}...`);
|
||||||
|
|
||||||
|
const inputsJson = process.env.INPUTS_JSON;
|
||||||
|
if (!inputsJson) {
|
||||||
|
throw new Error("INPUTS_JSON environment variable not found");
|
||||||
|
}
|
||||||
|
|
||||||
|
const parsed = type("string.json.parse").assert(inputsJson);
|
||||||
|
const inputs = Inputs.assert(parsed);
|
||||||
|
|
||||||
|
const result = await main(inputs);
|
||||||
|
|
||||||
|
if (!result.success) {
|
||||||
|
throw new Error(result.error || "Agent execution failed");
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
const errorMessage = error instanceof Error ? error.message : "Unknown error occurred";
|
||||||
|
core.setFailed(`Action failed: ${errorMessage}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wrap in IIFE to avoid top-level await in CJS
|
||||||
|
(async () => {
|
||||||
|
await run();
|
||||||
|
})();
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import { build } from "esbuild";
|
||||||
|
|
||||||
|
// Build the GitHub Action bundle only
|
||||||
|
// For npm package builds, use zshy (pnpm build:npm)
|
||||||
|
await build({
|
||||||
|
entryPoints: ["./entry.build.ts"],
|
||||||
|
bundle: true,
|
||||||
|
outfile: "./entry.cjs",
|
||||||
|
format: "cjs",
|
||||||
|
platform: "node",
|
||||||
|
target: "node20",
|
||||||
|
minify: true,
|
||||||
|
sourcemap: false,
|
||||||
|
// @actions/core is provided by GitHub Actions runtime, but we still need it bundled
|
||||||
|
// for local testing. However, we can mark it to reduce duplication if needed.
|
||||||
|
external: [],
|
||||||
|
// Enable tree-shaking to remove unused code
|
||||||
|
treeShaking: true,
|
||||||
|
// Drop console statements in production (but keep for debugging)
|
||||||
|
drop: [],
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log("✅ Build completed successfully!");
|
||||||
|
|
||||||
+6
-2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@pullfrog/action",
|
"name": "@pullfrog/action",
|
||||||
"version": "0.0.72",
|
"version": "0.0.73",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"files": [
|
"files": [
|
||||||
"index.js",
|
"index.js",
|
||||||
@@ -15,9 +15,11 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1",
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
"typecheck": "tsc --noEmit",
|
"typecheck": "tsc --noEmit",
|
||||||
|
"build": "node esbuild.config.js",
|
||||||
"play": "node play.ts",
|
"play": "node play.ts",
|
||||||
"upDeps": "pnpm up --latest",
|
"upDeps": "pnpm up --latest",
|
||||||
"lock": "pnpm --ignore-workspace install"
|
"lock": "pnpm --ignore-workspace install",
|
||||||
|
"prepare": "husky"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.11.1",
|
"@actions/core": "^1.11.1",
|
||||||
@@ -36,6 +38,8 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^24.7.2",
|
"@types/node": "^24.7.2",
|
||||||
"arg": "^5.0.2",
|
"arg": "^5.0.2",
|
||||||
|
"esbuild": "^0.25.9",
|
||||||
|
"husky": "^9.0.0",
|
||||||
"typescript": "^5.9.3"
|
"typescript": "^5.9.3"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|||||||
Reference in New Issue
Block a user