Skip to content

Commit 3b541fa

Browse files
committed
Add GitHub attestation to published packages and fix issue with mimicking GitHub Actions environment
1 parent 530236e commit 3b541fa

15 files changed

+417
-79
lines changed

.github/workflows/graphs/build-test-publish.act

Lines changed: 351 additions & 22 deletions
Large diffs are not rendered by default.

.github/workflows/graphs/publish.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ def main():
2020
sha256 = get_env_variable('SHA256')
2121
typ = get_env_variable('TYPE')
2222
version = get_env_variable('VERSION')
23+
attestation_url = get_env_variable('ATTESTATION_URL')
2324
key = get_env_variable('S3_KEY')
2425
region = get_env_variable('PUBLISH_S3_REGION')
2526
bucket = get_env_variable('PUBLISH_S3_BUCKET')
@@ -41,6 +42,7 @@ def main():
4142
"key": key,
4243
"endpoint": endpoint
4344
},
45+
"attestation_url": attestation_url,
4446
"sha256": sha256,
4547
"type": typ
4648
}]

.github/workflows/workflow.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ on:
2121
type: boolean
2222
default: false
2323

24+
permissions:
25+
id-token: write
26+
attestations: write
27+
artifact-metadata: write
28+
contents: read
29+
2430
jobs:
2531
build-quick:
2632

@@ -60,10 +66,6 @@ jobs:
6066
name: Build, Test and Publish
6167
if: startsWith(github.ref, 'refs/tags/') && (github.event_name == 'workflow_dispatch' || (github.event_name == 'push'))
6268

63-
permissions:
64-
packages: write
65-
contents: read
66-
6769
strategy:
6870
matrix:
6971
license: [free] # add pro when ready

core/graph.go

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,8 @@ func RunGraph(ctx context.Context, graphName string, graphContent []byte, opts R
287287
}
288288

289289
entryNode, isBaseNode := entry.(NodeBaseInterface)
290-
isGitHubWorkflow := os.Getenv("GITHUB_ACTIONS") == "true" || (isBaseNode && entryNode.GetNodeTypeId() == "core/gh-start@v1")
290+
isGitHubAction := os.Getenv("GITHUB_ACTIONS") == "true"
291+
isGitHubWorkflow := isBaseNode && entryNode.GetNodeTypeId() == "core/gh-start@v1"
291292

292293
// Initialize trackers with their respective categories
293294
envTracker := newValueMap[string]("env")
@@ -399,36 +400,40 @@ func RunGraph(ctx context.Context, graphName string, graphContent []byte, opts R
399400
printExplicit(envTracker, false)
400401
}
401402

402-
if isGitHubWorkflow {
403-
err = SetupGitHubActionsEnv(finalEnv)
404-
if err != nil {
405-
return CreateErr(nil, err, "failed to setup GitHub Actions environment")
406-
}
407-
}
408-
409-
// set cwd for current process. `ACT_CWD` is used for non GitHub workflows
410-
if cwd := finalEnv["GITHUB_WORKSPACE"]; cwd != "" {
403+
if cwd := finalEnv["ACT_CWD"]; cwd != "" {
411404
originalCwd, err := os.Getwd()
412405
if err != nil {
413406
return CreateErr(nil, err, "failed to get current working directory")
414407
}
415408
if err := os.Chdir(cwd); err != nil {
416-
return CreateErr(nil, err, "failed to change working directory to GITHUB_WORKSPACE")
409+
return CreateErr(nil, err, "failed to change working directory to ACT_CWD")
417410
}
418411
defer func() {
419412
_ = os.Chdir(originalCwd)
420413
}()
421-
} else if cwd := finalEnv["ACT_CWD"]; cwd != "" {
422-
originalCwd, err := os.Getwd()
414+
}
415+
416+
if !isGitHubAction && isGitHubWorkflow {
417+
// If we are running a github actions workflow, then mimic a GitHub Actions environment
418+
// But only do is if we are NOT already in GitHub Actions
419+
err = SetupGitHubActionsEnv(finalEnv)
423420
if err != nil {
424-
return CreateErr(nil, err, "failed to get current working directory")
421+
return CreateErr(nil, err, "failed to setup GitHub Actions environment")
425422
}
426-
if err := os.Chdir(cwd); err != nil {
427-
return CreateErr(nil, err, "failed to change working directory to ACT_CWD")
423+
424+
// set cwd for current process. `ACT_CWD` above is used for non GitHub workflows
425+
if cwd := finalEnv["GITHUB_WORKSPACE"]; cwd != "" {
426+
originalCwd, err := os.Getwd()
427+
if err != nil {
428+
return CreateErr(nil, err, "failed to get current working directory")
429+
}
430+
if err := os.Chdir(cwd); err != nil {
431+
return CreateErr(nil, err, "failed to change working directory to GITHUB_WORKSPACE")
432+
}
433+
defer func() {
434+
_ = os.Chdir(originalCwd)
435+
}()
428436
}
429-
defer func() {
430-
_ = os.Chdir(originalCwd)
431-
}()
432437
}
433438

434439
// construct the `github` context

tests_e2e/references/reference_app.sh_l12

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ hint:
2323

2424
stack trace:
2525
github.com/actionforge/actrun-cli/core.RunGraphFromFile
26-
graph.go:1067
26+
graph.go:1072
2727
github.com/actionforge/actrun-cli/cmd.cmdRootRun
2828
cmd_root.go:186
2929
github.com/spf13/cobra.(*Command).execute

tests_e2e/references/reference_dir-walk.sh_l56

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@ github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteImpl
4040
github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteEntry
4141
start@v1.go:45
4242
github.com/actionforge/actrun-cli/core.RunGraph
43-
graph.go:462
43+
graph.go:467
4444
github.com/actionforge/actrun-cli/core.RunGraphFromString
45-
graph.go:1052
45+
graph.go:1057
4646
github.com/actionforge/actrun-cli/core.RunGraphFromFile
47-
graph.go:1070
47+
graph.go:1075
4848
github.com/actionforge/actrun-cli/cmd.cmdRootRun
4949
cmd_root.go:186
5050
github.com/spf13/cobra.(*Command).execute

tests_e2e/references/reference_error_no_output.sh_l8

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@ github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteImpl
5151
github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteEntry
5252
start@v1.go:45
5353
github.com/actionforge/actrun-cli/core.RunGraph
54-
graph.go:462
54+
graph.go:467
5555
github.com/actionforge/actrun-cli/core.RunGraphFromString
56-
graph.go:1052
56+
graph.go:1057
5757
github.com/actionforge/actrun-cli/core.RunGraphFromFile
58-
graph.go:1070
58+
graph.go:1075
5959
github.com/actionforge/actrun-cli/cmd.cmdRootRun
6060
cmd_root.go:186
6161
github.com/spf13/cobra.(*Command).execute

tests_e2e/references/reference_group-error.sh_l8

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteImpl
250250
github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteEntry
251251
start@v1.go:45
252252
github.com/actionforge/actrun-cli/core.RunGraph
253-
graph.go:462
253+
graph.go:467
254254
github.com/actionforge/actrun-cli/core.RunGraphFromString
255-
graph.go:1052
255+
graph.go:1057
256256

tests_e2e/references/reference_group-port-collision.sh_l13

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,17 @@ github.com/actionforge/actrun-cli/nodes.init.40.func1
2525
github.com/actionforge/actrun-cli/core.NewNodeInstance
2626
base.go:619
2727
github.com/actionforge/actrun-cli/core.LoadNode
28-
graph.go:635
28+
graph.go:640
2929
github.com/actionforge/actrun-cli/core.LoadNodes
30-
graph.go:575
30+
graph.go:580
3131
github.com/actionforge/actrun-cli/core.LoadGraph
32-
graph.go:490
32+
graph.go:495
3333
github.com/actionforge/actrun-cli/core.RunGraph
3434
graph.go:279
3535
github.com/actionforge/actrun-cli/core.RunGraphFromString
36-
graph.go:1052
36+
graph.go:1057
3737
github.com/actionforge/actrun-cli/core.RunGraphFromFile
38-
graph.go:1070
38+
graph.go:1075
3939
github.com/actionforge/actrun-cli/cmd.cmdRootRun
4040
cmd_root.go:186
4141
github.com/spf13/cobra.(*Command).execute

tests_e2e/references/reference_index.sh_l20

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,11 @@ github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteImpl
8484
github.com/actionforge/actrun-cli/nodes.(*StartNode).ExecuteEntry
8585
start@v1.go:45
8686
github.com/actionforge/actrun-cli/core.RunGraph
87-
graph.go:462
87+
graph.go:467
8888
github.com/actionforge/actrun-cli/core.RunGraphFromString
89-
graph.go:1052
89+
graph.go:1057
9090
github.com/actionforge/actrun-cli/core.RunGraphFromFile
91-
graph.go:1070
91+
graph.go:1075
9292
github.com/actionforge/actrun-cli/cmd.cmdRootRun
9393
cmd_root.go:186
9494
github.com/spf13/cobra.(*Command).execute

0 commit comments

Comments
 (0)