[GH-ISSUE #2135] Research about actions/upload-artifact@v4 and actions/download-artifact@v4 #1016

Closed
opened 2026-03-01 21:48:14 +03:00 by kerem · 19 comments
Owner

Originally created by @ChristopherHX on GitHub (Dec 19, 2023).
Original GitHub issue: https://github.com/nektos/act/issues/2135

Decompiled proto for artifacts from toolkit only typescript sources provided by GitHub.

Source

syntax = "proto3";

import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";

package github.actions.results.api.v1;

message CreateArtifactRequest {
    string workflow_run_backend_id = 1;
    string workflow_job_run_backend_id = 2;
    string name = 3;
    google.protobuf.Timestamp expires_at = 4;
    int32 version = 5;
}

message CreateArtifactResponse {
    bool ok = 1;
    string signed_upload_url = 2;
}

message FinalizeArtifactRequest {
    string workflow_run_backend_id = 1;
    string workflow_job_run_backend_id = 2;
    string name = 3;
    int64 size = 4;
    google.protobuf.StringValue hash = 5;
}

message FinalizeArtifactResponse {
  bool ok = 1;
  int64 artifact_id = 2;
}

message ListArtifactsRequest {
    string workflow_run_backend_id = 1;
    string workflow_job_run_backend_id = 2;
    google.protobuf.StringValue name_filter = 3;
    google.protobuf.Int64Value id_filter = 4;
}

message ListArtifactsResponse {
    repeated ListArtifactsResponse_MonolithArtifact artifacts = 1;
}

message ListArtifactsResponse_MonolithArtifact {
    string workflow_run_backend_id = 1;
    string workflow_job_run_backend_id = 2;
    int64 database_id = 3;
    string name = 4;
    int64 size = 5;
    google.protobuf.Timestamp created_at = 6;
}

message GetSignedArtifactURLRequest {
    string workflow_run_backend_id = 1;
    string workflow_job_run_backend_id = 2;
    string name = 3;
}

message GetSignedArtifactURLResponse {
    string signed_url = 1;
}

message DeleteArtifactRequest {
    string workflow_run_backend_id = 1;
    string workflow_job_run_backend_id = 2;
    string name = 3;
}

message DeleteArtifactResponse {
    bool ok = 1;
    int64 artifact_id = 2;
}

Notice, this was decompiled by bing chatbot and only required include fixes
You can do it yourself using that prompt and place classes as long they don't hit the content length. I have converted multiple times to get the final list of all Messages.

Convert the following to the protobuf proto format
```

```

Update 2024-02-17: Delete Artifact Endpoint proto

Originally created by @ChristopherHX on GitHub (Dec 19, 2023). Original GitHub issue: https://github.com/nektos/act/issues/2135 Decompiled proto for artifacts from toolkit only typescript sources provided by GitHub. [Source](https://github.com/actions/toolkit/blob/68f22927e727a60caff909aaaec1ab7267b39f75/packages/artifact/src/generated/results/api/v1/artifact.ts) ```proto syntax = "proto3"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; package github.actions.results.api.v1; message CreateArtifactRequest { string workflow_run_backend_id = 1; string workflow_job_run_backend_id = 2; string name = 3; google.protobuf.Timestamp expires_at = 4; int32 version = 5; } message CreateArtifactResponse { bool ok = 1; string signed_upload_url = 2; } message FinalizeArtifactRequest { string workflow_run_backend_id = 1; string workflow_job_run_backend_id = 2; string name = 3; int64 size = 4; google.protobuf.StringValue hash = 5; } message FinalizeArtifactResponse { bool ok = 1; int64 artifact_id = 2; } message ListArtifactsRequest { string workflow_run_backend_id = 1; string workflow_job_run_backend_id = 2; google.protobuf.StringValue name_filter = 3; google.protobuf.Int64Value id_filter = 4; } message ListArtifactsResponse { repeated ListArtifactsResponse_MonolithArtifact artifacts = 1; } message ListArtifactsResponse_MonolithArtifact { string workflow_run_backend_id = 1; string workflow_job_run_backend_id = 2; int64 database_id = 3; string name = 4; int64 size = 5; google.protobuf.Timestamp created_at = 6; } message GetSignedArtifactURLRequest { string workflow_run_backend_id = 1; string workflow_job_run_backend_id = 2; string name = 3; } message GetSignedArtifactURLResponse { string signed_url = 1; } message DeleteArtifactRequest { string workflow_run_backend_id = 1; string workflow_job_run_backend_id = 2; string name = 3; } message DeleteArtifactResponse { bool ok = 1; int64 artifact_id = 2; } ``` _Notice, this was decompiled by bing chatbot and only required include fixes_ You can do it yourself using that prompt and place classes as long they don't hit the content length. I have converted multiple times to get the final list of all Messages. ```` Convert the following to the protobuf proto format ``` ``` ```` **Update 2024-02-17: Delete Artifact Endpoint proto**
kerem 2026-03-01 21:48:14 +03:00
Author
Owner

@ChristopherHX commented on GitHub (Dec 19, 2023):

Hmm they are not using protobuf in the toolkit yet, but the code exists

They use the json representation of protobuf and not the binary protocol.

<!-- gh-comment-id:1863552053 --> @ChristopherHX commented on GitHub (Dec 19, 2023): Hmm they are not using protobuf in the toolkit yet, but the code exists They use the json representation of protobuf and not the binary protocol.
Author
Owner

@ChristopherHX commented on GitHub (Dec 20, 2023):

Only the origin of ACTIONS_RESULTS_URL is used so if it contains a baseurl path that is ignored.

Base url is always /twirp/github.actions.results.api.v1.ArtifactService of a user specified origin. Both http/https and port of the origin are preserved.

ACTIONS_RUNTIME_TOKEN must be a jwt token with claim scp containing a Actions.Results:{runid}:{jobId} value (replace {runid} and {jobId} with an id or guid, that is passed in each api request

GHES and GITEA are blocked by the current toolkit code and won't work as of now.

Gitea would have to switch to jwt tokens if they would want to support artifacts v4 from GitHub as soon it is allowed in GHES

<!-- gh-comment-id:1865154656 --> @ChristopherHX commented on GitHub (Dec 20, 2023): Only the origin of `ACTIONS_RESULTS_URL` is used so if it contains a baseurl path that is ignored. Base url is always `/twirp/github.actions.results.api.v1.ArtifactService` of a user specified origin. Both http/https and port of the origin are preserved. `ACTIONS_RUNTIME_TOKEN` must be a jwt token with claim `scp` containing a `Actions.Results:{runid}:{jobId}` value (replace `{runid}` and `{jobId}` with an id or guid, that is passed in each api request GHES and GITEA are blocked by the current toolkit code and won't work as of now. _Gitea would have to switch to jwt tokens if they would want to support artifacts v4 from GitHub as soon it is allowed in GHES_
Author
Owner

@TWiStErRob commented on GitHub (Jan 26, 2024):

@ChristopherHX what's the current state of ...-artifact@v4 support in act? and what are the steps required to get there?

When using new version, I'm getting

::error::Invalid token specified: Cannot read properties of undefined (reading 'replace')

which is consistent with your findings about jwt tokens above.

<!-- gh-comment-id:1912005199 --> @TWiStErRob commented on GitHub (Jan 26, 2024): @ChristopherHX what's the current state of `...-artifact@v4` support in act? and what are the steps required to get there? When using new version, I'm getting > ::error::Invalid token specified: Cannot read properties of undefined (reading 'replace') which is consistent with your findings about jwt tokens above.
Author
Owner

@ChristopherHX commented on GitHub (Jan 26, 2024):

what's the current state of ...-artifact@v4 support in act

0%

in gitea 80%, it's also in go so not that much to fear.

We could port https://github.com/go-gitea/gitea/compare/main...ChristopherHX:gitea:gitea-artifacts-v4 to act.

My time is currently limited due to exam period.

ACTIONS_RUNTIME_TOKEN has never been set by act itself...

<!-- gh-comment-id:1912254995 --> @ChristopherHX commented on GitHub (Jan 26, 2024): > what's the current state of ...-artifact@v4 support in act 0% in gitea 80%, it's also in go so not that much to fear. We could port <https://github.com/go-gitea/gitea/compare/main...ChristopherHX:gitea:gitea-artifacts-v4> to act. My time is currently limited due to exam period. ACTIONS_RUNTIME_TOKEN has never been set by act itself...
Author
Owner

@zdenardi commented on GitHub (Feb 5, 2024):

I'm still getting
::error::Invalid token specified: Cannot read properties of undefined (reading 'replace')
Any update on this?

<!-- gh-comment-id:1928451218 --> @zdenardi commented on GitHub (Feb 5, 2024): I'm still getting `::error::Invalid token specified: Cannot read properties of undefined (reading 'replace')` Any update on this?
Author
Owner

@JoshMcCullough commented on GitHub (Apr 10, 2024):

Also seeing this with upload-artifact@v4 -- any fix?

<!-- gh-comment-id:2047992243 --> @JoshMcCullough commented on GitHub (Apr 10, 2024): Also seeing this with `upload-artifact@v4` -- any fix?
Author
Owner

@ChristopherHX commented on GitHub (Apr 10, 2024):

The fix is https://github.com/nektos/act/pull/2224, but it doesn't meet the 50% (has 40%) coverage requirement of this project. Due to unused generated code of google protobuf.

go-gitea/gitea requirements are not that strict and it has been merged months ago

<!-- gh-comment-id:2048033839 --> @ChristopherHX commented on GitHub (Apr 10, 2024): The fix is https://github.com/nektos/act/pull/2224, but it doesn't meet the 50% (has 40%) coverage requirement of this project. Due to unused generated code of google protobuf. go-gitea/gitea requirements are not that strict and it has been merged months ago
Author
Owner

@JoshMcCullough commented on GitHub (Apr 10, 2024):

@ChristopherHX thanks for your work on this, and for the update.

<!-- gh-comment-id:2048041665 --> @JoshMcCullough commented on GitHub (Apr 10, 2024): @ChristopherHX thanks for your work on this, and for the update.
Author
Owner

@rorycl commented on GitHub (May 1, 2024):

I think I've hit the same issue on act version 0.2.62:

...
[artifacts/artifacts-component/artifacts-component]   🐳  docker cp src=/home/rory/.cache/act/actions-upload-artifact@v4/ dst=/var/run/act/actions/actions-upload-artifact@v4/
[artifacts/artifacts-component/artifacts-component]   🐳  docker exec cmd=[node /var/run/act/actions/actions-upload-artifact@v4/dist/upload/index.js] user= workdir=
...
| With the provided path, there will be 12 files uploaded 
[artifacts/artifacts-component/artifacts-component]   💬  ::debug::Root artifact directory is /home/<user/src/cexfind/artifacts
| Artifact name is valid! 
| Root directory input is valid!
[artifacts/artifacts-component/artifacts-component]   ❗  ::error::Invalid token specified: Cannot read properties of undefined (reading 'replace')
[artifacts/artifacts-component/artifacts-component]   ❌  Failure - Main archive
[artifacts/artifacts-component/artifacts-component] exitcode '1': failure
[artifacts/artifacts-component/artifacts-component] 🏁  Job failed
Error: Job 'artifacts-component' failed

This workflow works fine on github.

<!-- gh-comment-id:2088549585 --> @rorycl commented on GitHub (May 1, 2024): I think I've hit the same issue on act version 0.2.62: ``` ... [artifacts/artifacts-component/artifacts-component] 🐳 docker cp src=/home/rory/.cache/act/actions-upload-artifact@v4/ dst=/var/run/act/actions/actions-upload-artifact@v4/ [artifacts/artifacts-component/artifacts-component] 🐳 docker exec cmd=[node /var/run/act/actions/actions-upload-artifact@v4/dist/upload/index.js] user= workdir= ... | With the provided path, there will be 12 files uploaded [artifacts/artifacts-component/artifacts-component] 💬 ::debug::Root artifact directory is /home/<user/src/cexfind/artifacts | Artifact name is valid! | Root directory input is valid! [artifacts/artifacts-component/artifacts-component] ❗ ::error::Invalid token specified: Cannot read properties of undefined (reading 'replace') [artifacts/artifacts-component/artifacts-component] ❌ Failure - Main archive [artifacts/artifacts-component/artifacts-component] exitcode '1': failure [artifacts/artifacts-component/artifacts-component] 🏁 Job failed Error: Job 'artifacts-component' failed ``` This workflow works fine on github.
Author
Owner

@rorycl commented on GitHub (May 20, 2024):

Hi @ChristopherHX. Thanks very much for the note about the JWT token to fix the problem with artifacts-component. That seems to work fine.

However, running on e1e5671 I'm getting a related error: Unable to get the ACTIONS_RESULTS_URL env variable.

I'm invoking act as follows:

~/go/bin/act -v \
   -artifact-server-path=/tmp/artifacts \
   --env ACTIONS_RUNTIME_TOKEN=eyJhbGciOiJIUzI1NiJ9.eyJzY3AiOiJBY3Rpb25zLlJlc3VsdHM6e3J1bmlkfTp7am9iSWR9In0.uQOTIBLfmTt_NHUzaNcZHk8RcjWGwHxrfmon2-hUzPo

(That jwt has the contents you suggested, see jwt.io).

Apologies if I've missed something here. Let me know if I should file a new issue or specify an ACTIONS_RESULTS_URL in the environment.

Extract from output:

[arti...artifacts-component]   ✅  Success - Main build   
[arti...artifacts-component] ⭐ Run Main Copy Files 
[arti...artifacts-component]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/3] user= workdir=
[arti...artifacts-component]   ✅  Success - Main Copy Files
[arti...artifacts-component] ⭐ Run Main archive
[arti...artifacts-component]   🐳  docker cp src=/home/user/.cache/act/actions-upload-artifact@v4/ dst=/var/run/act/actions/actions-upload-artifact@v4/
[arti...artifacts-component]   🐳  docker exec cmd=[node /var/run/act/actions/actions-upload-artifact@v4/dist/upload/index.js] user= workdir=
[arti...artifacts-component]   💬  ::debug::followSymbolicLinks 'true'
[arti...artifacts-component]   💬  ::debug::implicitDescendants 'true'
[arti...artifacts-component]   💬  ::debug::omitBrokenSymbolicLinks 'true'
[arti...artifacts-component]   💬  ::debug::followSymbolicLinks 'true'
[arti...artifacts-component]   💬  ::debug::implicitDescendants 'true'
[arti...artifacts-component]   💬  ::debug::matchDirectories 'true'
[arti...artifacts-component]   💬  ::debug::omitBrokenSymbolicLinks 'true'
[arti...artifacts-component]   💬  ::debug::Search path '/home/user/src/cexfind/artifacts'
[arti...artifacts-component]   💬  ::debug::Removing /home/user/src/cexfind/artifacts from rawSearchResults because it is a directory
[arti...artifacts-component]   💬  ::debug::File:/home/user/src/cexfind/artifacts/cli-darwin-amd64 was found using the provided searchPath
[arti...artifacts-component]   💬  ::debug::File:/home/user/src/cexfind/artifacts/cli-darwin-arm64 was found using the provided searchPath
[arti...artifacts-component]   💬  ::debug::File:/home/user/src/cexfind/artifacts/cli-linux-amd64 was found using the provided searchPath
[arti...artifacts-component]   💬  ::debug::File:/home/user/src/cexfind/artifacts/cli-win-amd64.exe was found using the provided searchPath
[arti...artifacts-component]   💬  ::debug::File:/home/user/src/cexfind/artifacts/console-darwin-amd64 was found using the provided searchPath
[arti...artifacts-component]   💬  ::debug::File:/home/user/src/cexfind/artifacts/console-darwin-arm64 was found using the provided searchPath
[arti...artifacts-component]   💬  ::debug::File:/home/user/src/cexfind/artifacts/console-linux-amd64 was found using the provided searchPath
[arti...artifacts-component]   💬  ::debug::File:/home/user/src/cexfind/artifacts/console-win-amd64.exe was found using the provided searchPath
[arti...artifacts-component]   💬  ::debug::File:/home/user/src/cexfind/artifacts/webserver-darwin-amd64 was found using the provided searchPath
[arti...artifacts-component]   💬  ::debug::File:/home/user/src/cexfind/artifacts/webserver-darwin-arm64 was found using the provided searchPath
[arti...artifacts-component]   💬  ::debug::File:/home/user/src/cexfind/artifacts/webserver-linux-amd64 was found using the provided searchPath
[arti...artifacts-component]   💬  ::debug::File:/home/user/src/cexfind/artifacts/webserver-win-amd64.exe was found using the provided searchPath
| With the provided path, there will be 12 files uploaded
[arti...artifacts-component]   💬  ::debug::Root artifact directory is /home/user/src/cexfind/artifacts
| Artifact name is valid!
| Root directory input is valid!
[arti...artifacts-component]   💬  ::debug::Workflow Run Backend ID: {runid}
[arti...artifacts-component]   💬  ::debug::Workflow Job Run Backend ID: {jobId}
[arti...artifacts-component]   ❗  ::error::Unable to get the ACTIONS_RESULTS_URL env variable
[arti...artifacts-component]   ❌  Failure - Main archive 
[arti...artifacts-component] exitcode '1': failure
[arti...artifacts-component] 🏁  Job failed
<!-- gh-comment-id:2121288469 --> @rorycl commented on GitHub (May 20, 2024): Hi @ChristopherHX. Thanks very much for the note about the JWT token to fix the problem with `artifacts-component`. That seems to work fine. However, running on [e1e5671](https://github.com/nektos/act/commit/e1e5671e3d9ed4672fb58e90e0d9d064a0e45d9d) I'm getting a related error: `Unable to get the ACTIONS_RESULTS_URL env variable`. I'm invoking `act` as follows: ``` ~/go/bin/act -v \ -artifact-server-path=/tmp/artifacts \ --env ACTIONS_RUNTIME_TOKEN=eyJhbGciOiJIUzI1NiJ9.eyJzY3AiOiJBY3Rpb25zLlJlc3VsdHM6e3J1bmlkfTp7am9iSWR9In0.uQOTIBLfmTt_NHUzaNcZHk8RcjWGwHxrfmon2-hUzPo ``` (That jwt has the contents you suggested, see [jwt.io](https://jwt.io/#debugger-io?token=eyJhbGciOiJIUzI1NiJ9.eyJzY3AiOiJBY3Rpb25zLlJlc3VsdHM6e3J1bmlkfTp7am9iSWR9In0.uQOTIBLfmTt_NHUzaNcZHk8RcjWGwHxrfmon2-hUzPo)). Apologies if I've missed something here. Let me know if I should file a new issue or specify an ACTIONS_RESULTS_URL in the environment. Extract from output: ``` [arti...artifacts-component] ✅ Success - Main build [arti...artifacts-component] ⭐ Run Main Copy Files [arti...artifacts-component] 🐳 docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/3] user= workdir= [arti...artifacts-component] ✅ Success - Main Copy Files [arti...artifacts-component] ⭐ Run Main archive [arti...artifacts-component] 🐳 docker cp src=/home/user/.cache/act/actions-upload-artifact@v4/ dst=/var/run/act/actions/actions-upload-artifact@v4/ [arti...artifacts-component] 🐳 docker exec cmd=[node /var/run/act/actions/actions-upload-artifact@v4/dist/upload/index.js] user= workdir= [arti...artifacts-component] 💬 ::debug::followSymbolicLinks 'true' [arti...artifacts-component] 💬 ::debug::implicitDescendants 'true' [arti...artifacts-component] 💬 ::debug::omitBrokenSymbolicLinks 'true' [arti...artifacts-component] 💬 ::debug::followSymbolicLinks 'true' [arti...artifacts-component] 💬 ::debug::implicitDescendants 'true' [arti...artifacts-component] 💬 ::debug::matchDirectories 'true' [arti...artifacts-component] 💬 ::debug::omitBrokenSymbolicLinks 'true' [arti...artifacts-component] 💬 ::debug::Search path '/home/user/src/cexfind/artifacts' [arti...artifacts-component] 💬 ::debug::Removing /home/user/src/cexfind/artifacts from rawSearchResults because it is a directory [arti...artifacts-component] 💬 ::debug::File:/home/user/src/cexfind/artifacts/cli-darwin-amd64 was found using the provided searchPath [arti...artifacts-component] 💬 ::debug::File:/home/user/src/cexfind/artifacts/cli-darwin-arm64 was found using the provided searchPath [arti...artifacts-component] 💬 ::debug::File:/home/user/src/cexfind/artifacts/cli-linux-amd64 was found using the provided searchPath [arti...artifacts-component] 💬 ::debug::File:/home/user/src/cexfind/artifacts/cli-win-amd64.exe was found using the provided searchPath [arti...artifacts-component] 💬 ::debug::File:/home/user/src/cexfind/artifacts/console-darwin-amd64 was found using the provided searchPath [arti...artifacts-component] 💬 ::debug::File:/home/user/src/cexfind/artifacts/console-darwin-arm64 was found using the provided searchPath [arti...artifacts-component] 💬 ::debug::File:/home/user/src/cexfind/artifacts/console-linux-amd64 was found using the provided searchPath [arti...artifacts-component] 💬 ::debug::File:/home/user/src/cexfind/artifacts/console-win-amd64.exe was found using the provided searchPath [arti...artifacts-component] 💬 ::debug::File:/home/user/src/cexfind/artifacts/webserver-darwin-amd64 was found using the provided searchPath [arti...artifacts-component] 💬 ::debug::File:/home/user/src/cexfind/artifacts/webserver-darwin-arm64 was found using the provided searchPath [arti...artifacts-component] 💬 ::debug::File:/home/user/src/cexfind/artifacts/webserver-linux-amd64 was found using the provided searchPath [arti...artifacts-component] 💬 ::debug::File:/home/user/src/cexfind/artifacts/webserver-win-amd64.exe was found using the provided searchPath | With the provided path, there will be 12 files uploaded [arti...artifacts-component] 💬 ::debug::Root artifact directory is /home/user/src/cexfind/artifacts | Artifact name is valid! | Root directory input is valid! [arti...artifacts-component] 💬 ::debug::Workflow Run Backend ID: {runid} [arti...artifacts-component] 💬 ::debug::Workflow Job Run Backend ID: {jobId} [arti...artifacts-component] ❗ ::error::Unable to get the ACTIONS_RESULTS_URL env variable [arti...artifacts-component] ❌ Failure - Main archive [arti...artifacts-component] exitcode '1': failure [arti...artifacts-component] 🏁 Job failed ```
Author
Owner

@ChristopherHX commented on GitHub (May 20, 2024):

However, running on e1e5671 I'm getting a related error: Unable to get the ACTIONS_RESULTS_URL env variable.

I don't know what you are doing..... this is missing a dash (-)

-artifact-server-path=/tmp/artifacts

And doing --env ACTIONS_RUNTIME_TOKEN is a very bad idea

For me it works like that

../act -W test.yml -P ubuntu-latest=-self-hosted --env GITHUB_REPOSITORY=me/me --artifact-server-path $PWD

test.yml is from my comment in the PR.
--env GITHUB_REPOSITORY=me/me is only there because I didn't have any valid repo at my pwd

<!-- gh-comment-id:2121345645 --> @ChristopherHX commented on GitHub (May 20, 2024): > However, running on [e1e5671](https://github.com/nektos/act/commit/e1e5671e3d9ed4672fb58e90e0d9d064a0e45d9d) I'm getting a related error: Unable to get the ACTIONS_RESULTS_URL env variable. I don't know what you are doing..... this is missing a dash (-) ``` -artifact-server-path=/tmp/artifacts ``` And doing `--env ACTIONS_RUNTIME_TOKEN` is a very bad idea For me it works like that ``` ../act -W test.yml -P ubuntu-latest=-self-hosted --env GITHUB_REPOSITORY=me/me --artifact-server-path $PWD ``` `test.yml` is from my comment in the PR. `--env GITHUB_REPOSITORY=me/me` is only there because I didn't have any valid repo at my pwd
Author
Owner

@ChristopherHX commented on GitHub (May 20, 2024):

Also if ACTIONS_RUNTIME_TOKEN is not a JWT, you might be using a different version of act than you claim to be using

<!-- gh-comment-id:2121347996 --> @ChristopherHX commented on GitHub (May 20, 2024): Also if `ACTIONS_RUNTIME_TOKEN` is not a JWT, you might be using a different version of act than you claim to be using
Author
Owner

@rorycl commented on GitHub (May 21, 2024):

Thanks very much for your response, @ChristopherHX . Apologies, the missing hyphen was the problem.

I can confirm that

~/go/bin/act \
   --artifact-server-path=/tmp/artifacts \
   --env ACTIONS_RUNTIME_TOKEN=$(<jwt)

runs successfully from a fresh compilation from e1e5671 and from the latest artifact run on linux amd64.

For anyone needing a jwt, please see the comment concerning making jwt with the contents

{"scp": "Actions.Results:{runid}:{jobId}"}

for example this one.

<!-- gh-comment-id:2122121812 --> @rorycl commented on GitHub (May 21, 2024): Thanks very much for your response, @ChristopherHX . Apologies, the missing hyphen was the problem. I can confirm that ``` ~/go/bin/act \ --artifact-server-path=/tmp/artifacts \ --env ACTIONS_RUNTIME_TOKEN=$(<jwt) ``` runs successfully from a fresh compilation from [e1e5671](https://github.com/nektos/act/commit/e1e5671e3d9ed4672fb58e90e0d9d064a0e45d9d) and from the latest [artifact run](https://github.com/nektos/act/actions/runs/9156960660) on linux amd64. For anyone needing a jwt, please see the comment concerning making jwt with the contents ``` {"scp": "Actions.Results:{runid}:{jobId}"} ``` for example [this one](https://jwt.io/#debugger-io?token=eyJhbGciOiJIUzI1NiJ9.eyJzY3AiOiJBY3Rpb25zLlJlc3VsdHM6e3J1bmlkfTp7am9iSWR9In0.uQOTIBLfmTt_NHUzaNcZHk8RcjWGwHxrfmon2-hUzPo).
Author
Owner

@TWiStErRob commented on GitHub (May 21, 2024):

With the PR merged, do we still need to manually mint a JWT? Shouldn't act be doing that internally?

<!-- gh-comment-id:2122480552 --> @TWiStErRob commented on GitHub (May 21, 2024): With the PR merged, do we still need to manually mint a JWT? Shouldn't act be doing that internally?
Author
Owner

@rorycl commented on GitHub (May 21, 2024):

You are right, @TWiStErRob

~/go/bin/act --artifact-server-path=/tmp/artifacts without a jwt worked for me on a local test run, with act on e1e5671.

Apologies for the noise.

<!-- gh-comment-id:2122488735 --> @rorycl commented on GitHub (May 21, 2024): You are right, @TWiStErRob `~/go/bin/act --artifact-server-path=/tmp/artifacts` without a jwt worked for me on a local test run, with act on [e1e5671](https://github.com/nektos/act/commit/e1e5671e3d9ed4672fb58e90e0d9d064a0e45d9d). Apologies for the noise.
Author
Owner

@tokidoki11 commented on GitHub (May 22, 2024):

sorry is there any release ETA?

<!-- gh-comment-id:2124210170 --> @tokidoki11 commented on GitHub (May 22, 2024): sorry is there any release ETA?
Author
Owner

@ChristopherHX commented on GitHub (May 22, 2024):

I didn't even create this as a feature request, this issue contains much technical details for implementing the feature from scratch. Therefore are references to the jwt format or the google protobuf file part of this issue, all of them are mostly irrelevant for users of the act executable.

sorry is there any release ETA?

  1. June 2024, cron job will create a release as long it doesn't fail to do so

Nobody prevents you from downloading the executable associated with all Pullrequests that are merged from the GitHub Artifact List or just clone or doing a go build.

<!-- gh-comment-id:2124747786 --> @ChristopherHX commented on GitHub (May 22, 2024): I didn't even create this as a feature request, this issue contains much technical details for implementing the feature from scratch. Therefore are references to the jwt format or the google protobuf file part of this issue, all of them are mostly irrelevant for users of the act executable. > sorry is there any release ETA? 1. June 2024, _cron job will create a release as long it doesn't fail to do so_ Nobody prevents you from downloading the executable associated with all Pullrequests that are merged from the GitHub Artifact List or just clone or doing a `go build`.
Author
Owner

@JoshMcCullough commented on GitHub (Feb 7, 2025):

The fix is https://github.com/nektos/act/pull/2224, but it doesn't meet the 50% (has 40%) coverage requirement of this project. Due to unused generated code of google protobuf.

Shouldn't generated code be exclude from coverage?

<!-- gh-comment-id:2644195560 --> @JoshMcCullough commented on GitHub (Feb 7, 2025): > The fix is https://github.com/nektos/act/pull/2224, but it doesn't meet the 50% (has 40%) coverage requirement of this project. Due to unused generated code of google protobuf. Shouldn't generated code be exclude from coverage?
Author
Owner

@ChristopherHX commented on GitHub (Feb 7, 2025):

Shouldn't generated code be exclude from coverage?

Yes this has been done in 2024 before it has been merged

<!-- gh-comment-id:2644331425 --> @ChristopherHX commented on GitHub (Feb 7, 2025): > Shouldn't generated code be exclude from coverage? Yes this has been done in 2024 before it has been merged
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/act#1016
No description provided.