From f45babc6052f1046f55412b1feaca3dbdd8b1ee6 Mon Sep 17 00:00:00 2001 From: bahdotsh Date: Fri, 5 Sep 2025 08:01:29 +0530 Subject: [PATCH 1/2] fix(docker): mount GitHub environment files directory into containers - Mount GitHub environment files directory containing GITHUB_ENV, GITHUB_OUTPUT, GITHUB_PATH, and GITHUB_STEP_SUMMARY - Resolves Docker container exit code -1 when writing to $GITHUB_ENV - Update volume mapping in both step execution contexts in engine.rs - Tested on macOS with Docker Desktop Closes: Issue where echo "VAR=value" >> "$GITHUB_ENV" fails in Docker runtime --- clippy-test.yml | 12 ---------- crates/executor/src/engine.rs | 22 +++++++++++++++++-- final-test.yml | 13 ----------- .../workflows/working-secrets-test.yml | 0 4 files changed, 20 insertions(+), 27 deletions(-) delete mode 100644 clippy-test.yml delete mode 100644 final-test.yml rename working-secrets-test.yml => tests/workflows/working-secrets-test.yml (100%) diff --git a/clippy-test.yml b/clippy-test.yml deleted file mode 100644 index 91fa69a..0000000 --- a/clippy-test.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Clippy Test -on: [push] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - name: Test secrets after clippy fixes - env: - TEST_VAR: ${{ secrets.TEST_SECRET }} - run: | - echo "Secret length: ${#TEST_VAR}" diff --git a/crates/executor/src/engine.rs b/crates/executor/src/engine.rs index 49aa50d..7f89478 100644 --- a/crates/executor/src/engine.rs +++ b/crates/executor/src/engine.rs @@ -1538,7 +1538,16 @@ async fn execute_step(ctx: StepExecutionContext<'_>) -> Result = vec![(ctx.working_dir, container_workspace)]; + let mut volumes: Vec<(&Path, &Path)> = vec![(ctx.working_dir, container_workspace)]; + + // Also mount the GitHub environment files directory if GITHUB_ENV is set + if let Some(github_env_path) = ctx.job_env.get("GITHUB_ENV") { + if let Some(github_dir) = Path::new(github_env_path).parent() { + if let Some(github_parent) = github_dir.parent() { + volumes.push((github_parent, github_parent)); + } + } + } let output = ctx .runtime @@ -1687,7 +1696,16 @@ async fn execute_step(ctx: StepExecutionContext<'_>) -> Result = vec![(ctx.working_dir, container_workspace)]; + let mut volumes: Vec<(&Path, &Path)> = vec![(ctx.working_dir, container_workspace)]; + + // Also mount the GitHub environment files directory if GITHUB_ENV is set + if let Some(github_env_path) = ctx.job_env.get("GITHUB_ENV") { + if let Some(github_dir) = Path::new(github_env_path).parent() { + if let Some(github_parent) = github_dir.parent() { + volumes.push((github_parent, github_parent)); + } + } + } // Execute the command match ctx diff --git a/final-test.yml b/final-test.yml deleted file mode 100644 index 42f2c88..0000000 --- a/final-test.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: Final Secrets Test -on: [push] - -jobs: - verify-secrets: - runs-on: ubuntu-latest - steps: - - name: Test secrets are working - env: - SECRET_VAL: ${{ secrets.TEST_SECRET }} - run: | - echo "Secret length: ${#SECRET_VAL}" - echo "All secrets functionality verified!" diff --git a/working-secrets-test.yml b/tests/workflows/working-secrets-test.yml similarity index 100% rename from working-secrets-test.yml rename to tests/workflows/working-secrets-test.yml From b1cc74639c5be6104933bd1e1c54cb3157783ce5 Mon Sep 17 00:00:00 2001 From: bahdotsh Date: Fri, 5 Sep 2025 08:22:15 +0530 Subject: [PATCH 2/2] version fix --- Cargo.toml | 26 +++++++++++++------------- crates/evaluator/Cargo.toml | 2 +- crates/executor/Cargo.toml | 2 +- crates/github/Cargo.toml | 2 +- crates/gitlab/Cargo.toml | 2 +- crates/logging/Cargo.toml | 2 +- crates/matrix/Cargo.toml | 2 +- crates/models/Cargo.toml | 4 ++-- crates/parser/Cargo.toml | 2 +- crates/runtime/Cargo.toml | 2 +- crates/secrets/Cargo.toml | 2 +- crates/ui/Cargo.toml | 2 +- crates/utils/Cargo.toml | 2 +- crates/validators/Cargo.toml | 2 +- 14 files changed, 27 insertions(+), 27 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 3c7473c..15d7b96 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,19 +15,19 @@ license = "MIT" [workspace.dependencies] # Internal crate dependencies -wrkflw-models = { path = "crates/models", version = "0.7.2" } -wrkflw-evaluator = { path = "crates/evaluator", version = "0.7.2" } -wrkflw-executor = { path = "crates/executor", version = "0.7.2" } -wrkflw-github = { path = "crates/github", version = "0.7.2" } -wrkflw-gitlab = { path = "crates/gitlab", version = "0.7.2" } -wrkflw-logging = { path = "crates/logging", version = "0.7.2" } -wrkflw-matrix = { path = "crates/matrix", version = "0.7.2" } -wrkflw-parser = { path = "crates/parser", version = "0.7.2" } -wrkflw-runtime = { path = "crates/runtime", version = "0.7.2" } -wrkflw-secrets = { path = "crates/secrets", version = "0.7.2" } -wrkflw-ui = { path = "crates/ui", version = "0.7.2" } -wrkflw-utils = { path = "crates/utils", version = "0.7.2" } -wrkflw-validators = { path = "crates/validators", version = "0.7.2" } +wrkflw-models = { path = "crates/models", version = "0.7.3" } +wrkflw-evaluator = { path = "crates/evaluator", version = "0.7.3" } +wrkflw-executor = { path = "crates/executor", version = "0.7.3" } +wrkflw-github = { path = "crates/github", version = "0.7.3" } +wrkflw-gitlab = { path = "crates/gitlab", version = "0.7.3" } +wrkflw-logging = { path = "crates/logging", version = "0.7.3" } +wrkflw-matrix = { path = "crates/matrix", version = "0.7.3" } +wrkflw-parser = { path = "crates/parser", version = "0.7.3" } +wrkflw-runtime = { path = "crates/runtime", version = "0.7.3" } +wrkflw-secrets = { path = "crates/secrets", version = "0.7.3" } +wrkflw-ui = { path = "crates/ui", version = "0.7.3" } +wrkflw-utils = { path = "crates/utils", version = "0.7.3" } +wrkflw-validators = { path = "crates/validators", version = "0.7.3" } # External dependencies clap = { version = "4.3", features = ["derive"] } diff --git a/crates/evaluator/Cargo.toml b/crates/evaluator/Cargo.toml index af80c0f..b656973 100644 --- a/crates/evaluator/Cargo.toml +++ b/crates/evaluator/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wrkflw-evaluator" -version.workspace = true +version = "0.7.3" edition.workspace = true description = "Workflow evaluation functionality for wrkflw execution engine" license.workspace = true diff --git a/crates/executor/Cargo.toml b/crates/executor/Cargo.toml index 58a0ad0..d7d0b7d 100644 --- a/crates/executor/Cargo.toml +++ b/crates/executor/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wrkflw-executor" -version.workspace = true +version = "0.7.3" edition.workspace = true description = "Workflow execution engine for wrkflw" license.workspace = true diff --git a/crates/github/Cargo.toml b/crates/github/Cargo.toml index 629a331..3c73e1e 100644 --- a/crates/github/Cargo.toml +++ b/crates/github/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wrkflw-github" -version.workspace = true +version = "0.7.3" edition.workspace = true description = "GitHub API integration for wrkflw workflow execution engine" license.workspace = true diff --git a/crates/gitlab/Cargo.toml b/crates/gitlab/Cargo.toml index 9b87186..1bb01a8 100644 --- a/crates/gitlab/Cargo.toml +++ b/crates/gitlab/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wrkflw-gitlab" -version.workspace = true +version = "0.7.3" edition.workspace = true description = "GitLab API integration for wrkflw workflow execution engine" license.workspace = true diff --git a/crates/logging/Cargo.toml b/crates/logging/Cargo.toml index c3276fb..684d4b7 100644 --- a/crates/logging/Cargo.toml +++ b/crates/logging/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wrkflw-logging" -version.workspace = true +version = "0.7.3" edition.workspace = true description = "Logging functionality for wrkflw workflow execution engine" license.workspace = true diff --git a/crates/matrix/Cargo.toml b/crates/matrix/Cargo.toml index 68b2668..dd7ece3 100644 --- a/crates/matrix/Cargo.toml +++ b/crates/matrix/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wrkflw-matrix" -version.workspace = true +version = "0.7.3" edition.workspace = true description = "Matrix job parallelization for wrkflw workflow execution engine" license.workspace = true diff --git a/crates/models/Cargo.toml b/crates/models/Cargo.toml index ccf9bcb..dd680aa 100644 --- a/crates/models/Cargo.toml +++ b/crates/models/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wrkflw-models" -version.workspace = true +version = "0.7.3" edition.workspace = true description = "Data models and structures for wrkflw workflow execution engine" license.workspace = true @@ -14,4 +14,4 @@ categories.workspace = true serde.workspace = true serde_yaml.workspace = true serde_json.workspace = true -thiserror.workspace = true +thiserror.workspace = true diff --git a/crates/parser/Cargo.toml b/crates/parser/Cargo.toml index 7b704b3..c2372af 100644 --- a/crates/parser/Cargo.toml +++ b/crates/parser/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wrkflw-parser" -version.workspace = true +version = "0.7.3" edition.workspace = true description = "Workflow parsing functionality for wrkflw execution engine" license.workspace = true diff --git a/crates/runtime/Cargo.toml b/crates/runtime/Cargo.toml index 22932ba..721eb85 100644 --- a/crates/runtime/Cargo.toml +++ b/crates/runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wrkflw-runtime" -version.workspace = true +version = "0.7.3" edition.workspace = true description = "Runtime execution environment for wrkflw workflow engine" license.workspace = true diff --git a/crates/secrets/Cargo.toml b/crates/secrets/Cargo.toml index 8a89d83..e21662f 100644 --- a/crates/secrets/Cargo.toml +++ b/crates/secrets/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wrkflw-secrets" -version.workspace = true +version = "0.7.3" edition.workspace = true description = "Secrets management for wrkflw workflow execution engine" license.workspace = true diff --git a/crates/ui/Cargo.toml b/crates/ui/Cargo.toml index e884398..3215170 100644 --- a/crates/ui/Cargo.toml +++ b/crates/ui/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wrkflw-ui" -version.workspace = true +version = "0.7.3" edition.workspace = true description = "Terminal user interface for wrkflw workflow execution engine" license.workspace = true diff --git a/crates/utils/Cargo.toml b/crates/utils/Cargo.toml index d6a72e5..cbd30d9 100644 --- a/crates/utils/Cargo.toml +++ b/crates/utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wrkflw-utils" -version.workspace = true +version = "0.7.3" edition.workspace = true description = "Utility functions for wrkflw workflow execution engine" license.workspace = true diff --git a/crates/validators/Cargo.toml b/crates/validators/Cargo.toml index 3996226..cfc2233 100644 --- a/crates/validators/Cargo.toml +++ b/crates/validators/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wrkflw-validators" -version.workspace = true +version = "0.7.3" edition.workspace = true description = "Workflow validation functionality for wrkflw execution engine" license.workspace = true