diff --git a/actrun.sh b/actrun.sh new file mode 100644 index 0000000..894703f --- /dev/null +++ b/actrun.sh @@ -0,0 +1,153 @@ +#!/bin/bash +# actrun - ActionForge graph runner +# +# This script is deployed at: +# https://www.actionforge.dev/actrun.sh +# +# This script is deployed from: +# https://github.com/actionforge/actrun-cli/blob/main/actrun.sh +# +# Usage: +# curl -fsSL https://www.actionforge.dev/actrun.sh | bash -s -- [options] +# curl -fsSL https://www.actionforge.dev/actrun.sh | bash -s -- [options] +# +# Examples: +# curl -fsSL https://www.actionforge.dev/actrun.sh | bash -s -- hello-world.act +# curl -fsSL https://www.actionforge.dev/actrun.sh | bash -s -- workflow.act --verbose +# curl -fsSL https://www.actionforge.dev/actrun.sh | bash -s -- https://app.actionforge.dev/shared/wispy-paper-a49c664e.act +# curl -fsSL https://www.actionforge.dev/actrun.sh | bash -s -- --help +# +set -e + +DOWNLOAD_BASE="https://www.actionforge.dev/download" +API_URL="https://app.actionforge.dev/api/v2/releases/list" +SHARE_API_URL="https://app.actionforge.dev/api/v2/share/graph/read" +CACHE_DIR="${HOME}/.cache/actrun" + +# Detect OS +case "$(uname -s)" in + Linux*) OS="linux" ;; + Darwin*) OS="macos" ;; + MINGW*|MSYS*|CYGWIN*) OS="windows" ;; + *) echo "❌ Unsupported OS: $(uname -s)" >&2; exit 1 ;; +esac + +# Detect architecture +case "$(uname -m)" in + x86_64|amd64) ARCH="x64" ;; + arm64|aarch64) ARCH="arm64" ;; + *) echo "❌ Unsupported architecture: $(uname -m)" >&2; exit 1 ;; +esac + +# Get latest version from API (find highest version, excluding prereleases) +VERSION=$(curl -fsSL "$API_URL" | \ + grep -o '"version":"v[0-9]*\.[0-9]*\.[0-9]*"' | \ + cut -d'"' -f4 | sort -uV | tail -1) + +if [ -z "$VERSION" ]; then + echo "❌ Failed to fetch latest version" >&2 + exit 1 +fi + +# Check cache +CACHE_VERSION_DIR="$CACHE_DIR/$VERSION" +if [ "$OS" = "windows" ]; then + CACHED_BINARY="$CACHE_VERSION_DIR/actrun.exe" +else + CACHED_BINARY="$CACHE_VERSION_DIR/actrun" +fi + +if [ -x "$CACHED_BINARY" ]; then + echo "✅ Using cached actrun $VERSION" + + # Process shared URL if first argument matches the pattern + if [ $# -gt 0 ] && [[ "$1" =~ ^https://app\.actionforge\.dev/shared/([a-zA-Z0-9_-]+\.act)$ ]]; then + share_id="${BASH_REMATCH[1]}" + echo "🔗 Fetching shared graph: $share_id" + + graph_tmp=$(mktemp -t "actrun-shared-XXXXXX.act") + trap "rm -f '$graph_tmp'" EXIT + + if ! curl -fsSL "${SHARE_API_URL}?id=${share_id}" -o "$graph_tmp"; then + echo "❌ Failed to fetch shared graph: $share_id" >&2 + exit 1 + fi + + shift + exec "$CACHED_BINARY" "$graph_tmp" "$@" + fi + + exec "$CACHED_BINARY" "$@" +fi + +# Determine file extension +case "$OS" in + linux) EXT="tar.gz" ;; + windows) EXT="zip" ;; + macos) EXT="pkg" ;; +esac + +FILENAME="actrun-${VERSION}.cli-${ARCH}-${OS}.${EXT}" +URL="${DOWNLOAD_BASE}/${FILENAME}" + +echo "⬇️ Downloading $FILENAME..." + +TMP_DIR=$(mktemp -d) +cleanup() { + rm -rf "$TMP_DIR" +} +trap cleanup EXIT + +curl -fsSL "$URL" -o "$TMP_DIR/$FILENAME" + +echo "📦 Unpacking..." + +# Extract and find binary +case "$OS" in + linux) + tar -xzf "$TMP_DIR/$FILENAME" -C "$TMP_DIR" + BINARY="$TMP_DIR/actrun" + ;; + windows) + unzip -q "$TMP_DIR/$FILENAME" -d "$TMP_DIR" + BINARY="$TMP_DIR/actrun.exe" + ;; + macos) + pkgutil --expand-full "$TMP_DIR/$FILENAME" "$TMP_DIR/pkg_expanded" + BINARY=$(find "$TMP_DIR/pkg_expanded" -name "actrun" -type f -perm +111 2>/dev/null | head -1) + if [ -z "$BINARY" ]; then + BINARY=$(find "$TMP_DIR/pkg_expanded" -name "actrun" -type f | head -1) + fi + ;; +esac + +if [ ! -f "$BINARY" ]; then + echo "❌ Failed to find actrun binary" >&2 + exit 1 +fi + +# Cache the binary +mkdir -p "$CACHE_VERSION_DIR" +cp "$BINARY" "$CACHED_BINARY" +chmod +x "$CACHED_BINARY" + +echo "✅ Unpacked actrun $VERSION" + +# Process shared URL if first argument matches the pattern +if [ $# -gt 0 ] && [[ "$1" =~ ^https://app\.actionforge\.dev/shared/([a-zA-Z0-9_-]+\.act)$ ]]; then + share_id="${BASH_REMATCH[1]}" + echo "🔗 Fetching shared graph: $share_id" + + graph_tmp=$(mktemp -t "actrun-shared-XXXXXX.act") + trap "rm -rf '$TMP_DIR'; rm -f '$graph_tmp'" EXIT + + if ! curl -fsSL "${SHARE_API_URL}?id=${share_id}" -o "$graph_tmp"; then + echo "❌ Failed to fetch shared graph: $share_id" >&2 + exit 1 + fi + + shift + exec "$CACHED_BINARY" "$graph_tmp" "$@" +fi + +exec "$CACHED_BINARY" "$@" diff --git a/cmd/cmd_root.go b/cmd/cmd_root.go index cfebd41..e02dd20 100644 --- a/cmd/cmd_root.go +++ b/cmd/cmd_root.go @@ -40,7 +40,7 @@ var ( ) var cmdRoot = &cobra.Command{ - Use: "actrun [filename] [flags]", + Use: "actrun [filename|url] [flags]", Short: "actrun is a tool for running action graphs.", Version: build.GetFulllVersionInfo(), Args: cobra.ArbitraryArgs, @@ -172,12 +172,20 @@ func cmdRootRun(cmd *cobra.Command, args []string) { return } - err := core.RunGraphFromFile(context.Background(), finalGraphFile, core.RunOpts{ + var err error + opts := core.RunOpts{ ConfigFile: finalConfigFile, OverrideSecrets: nil, OverrideInputs: nil, Args: finalGraphArgs, - }, nil) + } + + if core.IsSharedGraphURL(finalGraphFile) { + err = core.RunGraphFromURL(context.Background(), finalGraphFile, opts, nil) + } else { + err = core.RunGraphFromFile(context.Background(), finalGraphFile, opts, nil) + } + if err != nil { core.PrintError(finalGraphFile, err) os.Exit(1) diff --git a/core/graph.go b/core/graph.go index 02f87c0..3464baf 100644 --- a/core/graph.go +++ b/core/graph.go @@ -5,8 +5,12 @@ import ( "context" "errors" "fmt" + "io" + "net/http" + "net/url" "os" "path/filepath" + "regexp" "sort" "strings" "sync" @@ -1038,3 +1042,68 @@ func RunGraphFromFile(ctx context.Context, graphFile string, opts RunOpts, debug return nil } + +// Matches URLs like https://app.actionforge.dev/shared/.act +var sharedURLPattern = regexp.MustCompile(`^https://app\.actionforge\.dev/shared/([a-zA-Z0-9_-]+\.act)$`) + +const shareAPIURL = "https://app.actionforge.dev/api/v2/share/graph/read" + +func IsSharedGraphURL(graphURL string) bool { + return sharedURLPattern.MatchString(graphURL) +} + +func ParseSharedGraphURL(graphURL string) (string, bool) { + matches := sharedURLPattern.FindStringSubmatch(graphURL) + if len(matches) != 2 { + return "", false + } + return matches[1], true +} + +// RunGraphFromURL fetches and runs a graph from a shared URL. +// Only urls from app.actionforge.dev are accepted +func RunGraphFromURL(ctx context.Context, graphURL string, opts RunOpts, debugCb DebugCallback) error { + parsedURL, err := url.Parse(graphURL) + if err != nil { + return CreateErr(nil, err, "invalid URL format") + } + + if parsedURL.Host != "app.actionforge.dev" { + return CreateErr(nil, nil, "invalid shared graph URL: only URLs from app.actionforge.dev are accepted, got '%s'", parsedURL.Host). + SetHint("Double-check the URL - shared graphs must be hosted on app.actionforge.dev") + } + + shareID, ok := ParseSharedGraphURL(graphURL) + if !ok { + return CreateErr(nil, nil, "invalid shared graph URL: expected format https://app.actionforge.dev/shared/.act") + } + + apiURL := fmt.Sprintf("%s?id=%s", shareAPIURL, url.QueryEscape(shareID)) + + utils.LogOut.Debugf("fetching shared graph from: %s\n", apiURL) + + req, err := http.NewRequestWithContext(ctx, http.MethodGet, apiURL, nil) + if err != nil { + return CreateErr(nil, err, "failed to create request for shared graph") + } + + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + return CreateErr(nil, err, "failed to fetch shared graph") + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + return CreateErr(nil, nil, "failed to fetch shared graph: server returned status %d", resp.StatusCode) + } + + graphContent, err := io.ReadAll(resp.Body) + if err != nil { + return CreateErr(nil, err, "failed to read shared graph content") + } + + graphName := shareID + + return RunGraphFromString(ctx, graphName, string(graphContent), opts, debugCb) +} diff --git a/tests_e2e/references/reference_app.sh_l10 b/tests_e2e/references/reference_app.sh_l10 index cc7a130..28f9ff5 100644 --- a/tests_e2e/references/reference_app.sh_l10 +++ b/tests_e2e/references/reference_app.sh_l10 @@ -1,7 +1,7 @@ build hasn't expired yet Error: unknown flag: --flag_doesnt_exist Usage: - actrun [filename] [flags] + actrun [filename|url] [flags] actrun [command] Available Commands: diff --git a/tests_e2e/references/reference_app.sh_l12 b/tests_e2e/references/reference_app.sh_l12 index 658ac05..ff2033a 100644 --- a/tests_e2e/references/reference_app.sh_l12 +++ b/tests_e2e/references/reference_app.sh_l12 @@ -23,9 +23,9 @@ hint: stack trace: github.com/actionforge/actrun-cli/core.RunGraphFromFile - graph.go:1031 + graph.go:1035 github.com/actionforge/actrun-cli/cmd.cmdRootRun - cmd_root.go:175 + cmd_root.go:186 github.com/spf13/cobra.(*Command).execute command.go:-1 github.com/spf13/cobra.(*Command).ExecuteC @@ -33,7 +33,7 @@ github.com/spf13/cobra.(*Command).ExecuteC github.com/spf13/cobra.(*Command).Execute command.go:-1 github.com/actionforge/actrun-cli/cmd.Execute - cmd_root.go:190 + cmd_root.go:198 main.main main.go:26 runtime.main diff --git a/tests_e2e/references/reference_contexts_env.sh_l26 b/tests_e2e/references/reference_contexts_env.sh_l26 index 6e07620..99cdd55 100644 --- a/tests_e2e/references/reference_contexts_env.sh_l26 +++ b/tests_e2e/references/reference_contexts_env.sh_l26 @@ -1,7 +1,7 @@ build hasn't expired yet Error: unable to load env file: doesnt_exist Usage: - actrun [filename] [flags] + actrun [filename|url] [flags] actrun [command] Available Commands: diff --git a/tests_e2e/references/reference_dir-walk.sh_l56 b/tests_e2e/references/reference_dir-walk.sh_l56 index 112d61b..c4eea98 100644 --- a/tests_e2e/references/reference_dir-walk.sh_l56 +++ b/tests_e2e/references/reference_dir-walk.sh_l56 @@ -40,13 +40,13 @@ github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteImpl github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteEntry start@v1.go:45 github.com/actionforge/actrun-cli/core.RunGraph - graph.go:426 + graph.go:430 github.com/actionforge/actrun-cli/core.RunGraphFromString - graph.go:1016 + graph.go:1020 github.com/actionforge/actrun-cli/core.RunGraphFromFile - graph.go:1034 + graph.go:1038 github.com/actionforge/actrun-cli/cmd.cmdRootRun - cmd_root.go:175 + cmd_root.go:186 github.com/spf13/cobra.(*Command).execute command.go:-1 github.com/spf13/cobra.(*Command).ExecuteC @@ -54,7 +54,7 @@ github.com/spf13/cobra.(*Command).ExecuteC github.com/spf13/cobra.(*Command).Execute command.go:-1 github.com/actionforge/actrun-cli/cmd.Execute - cmd_root.go:190 + cmd_root.go:198 main.main main.go:26 runtime.main diff --git a/tests_e2e/references/reference_error_no_output.sh_l8 b/tests_e2e/references/reference_error_no_output.sh_l8 index 0f0dd56..c1ee55e 100644 --- a/tests_e2e/references/reference_error_no_output.sh_l8 +++ b/tests_e2e/references/reference_error_no_output.sh_l8 @@ -51,13 +51,13 @@ github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteImpl github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteEntry start@v1.go:45 github.com/actionforge/actrun-cli/core.RunGraph - graph.go:426 + graph.go:430 github.com/actionforge/actrun-cli/core.RunGraphFromString - graph.go:1016 + graph.go:1020 github.com/actionforge/actrun-cli/core.RunGraphFromFile - graph.go:1034 + graph.go:1038 github.com/actionforge/actrun-cli/cmd.cmdRootRun - cmd_root.go:175 + cmd_root.go:186 github.com/spf13/cobra.(*Command).execute command.go:-1 github.com/spf13/cobra.(*Command).ExecuteC @@ -65,7 +65,7 @@ github.com/spf13/cobra.(*Command).ExecuteC github.com/spf13/cobra.(*Command).Execute command.go:-1 github.com/actionforge/actrun-cli/cmd.Execute - cmd_root.go:190 + cmd_root.go:198 main.main main.go:26 runtime.main diff --git a/tests_e2e/references/reference_group-error.sh_l8 b/tests_e2e/references/reference_group-error.sh_l8 index 7ba32cf..e53949a 100644 --- a/tests_e2e/references/reference_group-error.sh_l8 +++ b/tests_e2e/references/reference_group-error.sh_l8 @@ -250,7 +250,7 @@ github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteImpl github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteEntry start@v1.go:45 github.com/actionforge/actrun-cli/core.RunGraph - graph.go:426 + graph.go:430 github.com/actionforge/actrun-cli/core.RunGraphFromString - graph.go:1016 + graph.go:1020 diff --git a/tests_e2e/references/reference_group-port-collision.sh_l13 b/tests_e2e/references/reference_group-port-collision.sh_l13 index 8ff5c4d..f9302c4 100644 --- a/tests_e2e/references/reference_group-port-collision.sh_l13 +++ b/tests_e2e/references/reference_group-port-collision.sh_l13 @@ -20,24 +20,24 @@ error: ↳ group node has an input and output with the same name 'foo' stack trace: -github.com/actionforge/actrun-cli/nodes.init.39.func1 +github.com/actionforge/actrun-cli/nodes.init.40.func1 group@v1.go:155 github.com/actionforge/actrun-cli/core.NewNodeInstance base.go:610 github.com/actionforge/actrun-cli/core.LoadNode - graph.go:599 + graph.go:603 github.com/actionforge/actrun-cli/core.LoadNodes - graph.go:539 + graph.go:543 github.com/actionforge/actrun-cli/core.LoadGraph - graph.go:454 + graph.go:458 github.com/actionforge/actrun-cli/core.RunGraph - graph.go:275 + graph.go:279 github.com/actionforge/actrun-cli/core.RunGraphFromString - graph.go:1016 + graph.go:1020 github.com/actionforge/actrun-cli/core.RunGraphFromFile - graph.go:1034 + graph.go:1038 github.com/actionforge/actrun-cli/cmd.cmdRootRun - cmd_root.go:175 + cmd_root.go:186 github.com/spf13/cobra.(*Command).execute command.go:-1 github.com/spf13/cobra.(*Command).ExecuteC @@ -45,7 +45,7 @@ github.com/spf13/cobra.(*Command).ExecuteC github.com/spf13/cobra.(*Command).Execute command.go:-1 github.com/actionforge/actrun-cli/cmd.Execute - cmd_root.go:190 + cmd_root.go:198 main.main main.go:26 runtime.main diff --git a/tests_e2e/references/reference_index.sh_l20 b/tests_e2e/references/reference_index.sh_l20 index 9e2f278..073edd5 100644 --- a/tests_e2e/references/reference_index.sh_l20 +++ b/tests_e2e/references/reference_index.sh_l20 @@ -84,13 +84,13 @@ github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteImpl github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteEntry start@v1.go:45 github.com/actionforge/actrun-cli/core.RunGraph - graph.go:426 + graph.go:430 github.com/actionforge/actrun-cli/core.RunGraphFromString - graph.go:1016 + graph.go:1020 github.com/actionforge/actrun-cli/core.RunGraphFromFile - graph.go:1034 + graph.go:1038 github.com/actionforge/actrun-cli/cmd.cmdRootRun - cmd_root.go:175 + cmd_root.go:186 github.com/spf13/cobra.(*Command).execute command.go:-1 github.com/spf13/cobra.(*Command).ExecuteC @@ -98,7 +98,7 @@ github.com/spf13/cobra.(*Command).ExecuteC github.com/spf13/cobra.(*Command).Execute command.go:-1 github.com/actionforge/actrun-cli/cmd.Execute - cmd_root.go:190 + cmd_root.go:198 main.main main.go:26 runtime.main diff --git a/tests_e2e/references/reference_run-python-embedded.sh_l13 b/tests_e2e/references/reference_run-python-embedded.sh_l13 index 7f5f41f..45f2b1e 100644 --- a/tests_e2e/references/reference_run-python-embedded.sh_l13 +++ b/tests_e2e/references/reference_run-python-embedded.sh_l13 @@ -24,24 +24,24 @@ hint: https:[REDACTED]/#not-available stack trace: -github.com/actionforge/actrun-cli/nodes.init.50.func1 +github.com/actionforge/actrun-cli/nodes.init.51.func1 nrun-python-embedded@v1.go:16 github.com/actionforge/actrun-cli/core.NewNodeInstance base.go:610 github.com/actionforge/actrun-cli/core.LoadNode - graph.go:599 + graph.go:603 github.com/actionforge/actrun-cli/core.LoadNodes - graph.go:539 + graph.go:543 github.com/actionforge/actrun-cli/core.LoadGraph - graph.go:454 + graph.go:458 github.com/actionforge/actrun-cli/core.RunGraph - graph.go:275 + graph.go:279 github.com/actionforge/actrun-cli/core.RunGraphFromString - graph.go:1016 + graph.go:1020 github.com/actionforge/actrun-cli/core.RunGraphFromFile - graph.go:1034 + graph.go:1038 github.com/actionforge/actrun-cli/cmd.cmdRootRun - cmd_root.go:175 + cmd_root.go:186 github.com/spf13/cobra.(*Command).execute command.go:-1 github.com/spf13/cobra.(*Command).ExecuteC @@ -49,7 +49,7 @@ github.com/spf13/cobra.(*Command).ExecuteC github.com/spf13/cobra.(*Command).Execute command.go:-1 github.com/actionforge/actrun-cli/cmd.Execute - cmd_root.go:190 + cmd_root.go:198 main.main main.go:26 runtime.main diff --git a/tests_e2e/references/reference_s3_aws_walk.sh_l22 b/tests_e2e/references/reference_s3_aws_walk.sh_l22 index 6066f8d..7091fdf 100644 --- a/tests_e2e/references/reference_s3_aws_walk.sh_l22 +++ b/tests_e2e/references/reference_s3_aws_walk.sh_l22 @@ -44,13 +44,13 @@ github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteImpl github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteEntry start@v1.go:45 github.com/actionforge/actrun-cli/core.RunGraph - graph.go:426 + graph.go:430 github.com/actionforge/actrun-cli/core.RunGraphFromString - graph.go:1016 + graph.go:1020 github.com/actionforge/actrun-cli/core.RunGraphFromFile - graph.go:1034 + graph.go:1038 github.com/actionforge/actrun-cli/cmd.cmdRootRun - cmd_root.go:175 + cmd_root.go:186 github.com/spf13/cobra.(*Command).execute command.go:-1 github.com/spf13/cobra.(*Command).ExecuteC @@ -58,7 +58,7 @@ github.com/spf13/cobra.(*Command).ExecuteC github.com/spf13/cobra.(*Command).Execute command.go:-1 github.com/actionforge/actrun-cli/cmd.Execute - cmd_root.go:190 + cmd_root.go:198 main.main main.go:26 runtime.main diff --git a/tests_e2e/references/reference_s3_aws_walk.sh_l44 b/tests_e2e/references/reference_s3_aws_walk.sh_l44 index 6066f8d..7091fdf 100644 --- a/tests_e2e/references/reference_s3_aws_walk.sh_l44 +++ b/tests_e2e/references/reference_s3_aws_walk.sh_l44 @@ -44,13 +44,13 @@ github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteImpl github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteEntry start@v1.go:45 github.com/actionforge/actrun-cli/core.RunGraph - graph.go:426 + graph.go:430 github.com/actionforge/actrun-cli/core.RunGraphFromString - graph.go:1016 + graph.go:1020 github.com/actionforge/actrun-cli/core.RunGraphFromFile - graph.go:1034 + graph.go:1038 github.com/actionforge/actrun-cli/cmd.cmdRootRun - cmd_root.go:175 + cmd_root.go:186 github.com/spf13/cobra.(*Command).execute command.go:-1 github.com/spf13/cobra.(*Command).ExecuteC @@ -58,7 +58,7 @@ github.com/spf13/cobra.(*Command).ExecuteC github.com/spf13/cobra.(*Command).Execute command.go:-1 github.com/actionforge/actrun-cli/cmd.Execute - cmd_root.go:190 + cmd_root.go:198 main.main main.go:26 runtime.main diff --git a/tests_e2e/references/reference_select-data.sh_l9 b/tests_e2e/references/reference_select-data.sh_l9 index 2f85e52..01d53d1 100644 --- a/tests_e2e/references/reference_select-data.sh_l9 +++ b/tests_e2e/references/reference_select-data.sh_l9 @@ -91,13 +91,13 @@ github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteImpl github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteEntry start@v1.go:45 github.com/actionforge/actrun-cli/core.RunGraph - graph.go:426 + graph.go:430 github.com/actionforge/actrun-cli/core.RunGraphFromString - graph.go:1016 + graph.go:1020 github.com/actionforge/actrun-cli/core.RunGraphFromFile - graph.go:1034 + graph.go:1038 github.com/actionforge/actrun-cli/cmd.cmdRootRun - cmd_root.go:175 + cmd_root.go:186 github.com/spf13/cobra.(*Command).execute command.go:-1 github.com/spf13/cobra.(*Command).ExecuteC @@ -105,7 +105,7 @@ github.com/spf13/cobra.(*Command).ExecuteC github.com/spf13/cobra.(*Command).Execute command.go:-1 github.com/actionforge/actrun-cli/cmd.Execute - cmd_root.go:190 + cmd_root.go:198 main.main main.go:26 runtime.main diff --git a/tests_e2e/references/reference_shared_graph.sh_l3 b/tests_e2e/references/reference_shared_graph.sh_l3 new file mode 100644 index 0000000..c72e537 --- /dev/null +++ b/tests_e2e/references/reference_shared_graph.sh_l3 @@ -0,0 +1,20 @@ +build hasn't expired yet +looking for value: 'env_file' + no value (is optional) found for: 'env_file' +looking for value: 'config_file' + no value (is optional) found for: 'config_file' +looking for value: 'concurrency' + no value (is optional) found for: 'concurrency' +looking for value: 'graph_file' + no value (is optional) found for: 'graph_file' +looking for value: 'session_token' + no value (is optional) found for: 'session_token' +looking for value: 'create_debug_session' + found value in flags + evaluated to: 'false' +fetching shared graph from: https:[REDACTED]/read?id=still-wildflower-6d7c4984.act +PushNodeVisit: start, execute: true +🟢 Execute 'Print (core-print-v1-indigo-duck-penguin)' +PushNodeVisit: core-print-v1-indigo-duck-penguin, execute: true +PushNodeVisit: core-const-string-v1-lime-pink-teal, execute: false +Hello E2E Test diff --git a/tests_e2e/references/reference_string-transform.sh_l61 b/tests_e2e/references/reference_string-transform.sh_l61 index 78959f5..87142ca 100644 --- a/tests_e2e/references/reference_string-transform.sh_l61 +++ b/tests_e2e/references/reference_string-transform.sh_l61 @@ -51,13 +51,13 @@ github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteImpl github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteEntry start@v1.go:45 github.com/actionforge/actrun-cli/core.RunGraph - graph.go:426 + graph.go:430 github.com/actionforge/actrun-cli/core.RunGraphFromString - graph.go:1016 + graph.go:1020 github.com/actionforge/actrun-cli/core.RunGraphFromFile - graph.go:1034 + graph.go:1038 github.com/actionforge/actrun-cli/cmd.cmdRootRun - cmd_root.go:175 + cmd_root.go:186 github.com/spf13/cobra.(*Command).execute command.go:-1 github.com/spf13/cobra.(*Command).ExecuteC @@ -65,7 +65,7 @@ github.com/spf13/cobra.(*Command).ExecuteC github.com/spf13/cobra.(*Command).Execute command.go:-1 github.com/actionforge/actrun-cli/cmd.Execute - cmd_root.go:190 + cmd_root.go:198 main.main main.go:26 runtime.main diff --git a/tests_e2e/scripts/shared_graph.sh b/tests_e2e/scripts/shared_graph.sh new file mode 100644 index 0000000..d69ff58 --- /dev/null +++ b/tests_e2e/scripts/shared_graph.sh @@ -0,0 +1,3 @@ +echo "Test Run for shared graph" + +#! test actrun https://app.actionforge.dev/shared/still-wildflower-6d7c4984.act \ No newline at end of file