swiftlang / swiftlang/swift-java

The act workflow suggested in the contribution guide doesn't work well

Open
#532 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Swift
Stars
1.2k
Forks
123
Avg merge
1d 7h
Merged PRs (30d)
16

Description

I was trying to run the CI builds locally, but I encountered some issues. I suspect these are just act bugs, but I am not an experienced act user, so I may have missed some configuration. I hope it makes sense to mention these issues explicitly in the swift-java repository because the contribution guide calls for act usage.

It seems most useful commands explode due to a missing node binary. For example:

act workflow_call -W .github/workflows/pull_request.yml -j benchmark-java --container-architecture=linux/amd64

fails for me with:

| OCI runtime exec failed: exec failed: unable to start container process: exec: "node": executable file not found in $PATH: unknown

The workaround was to add a step (e.g. here) with an explicit node installation:

      - name: Install node
        if: ${{ env.ACT }}
        run: apt update && apt install -y curl && curl -fsSL https://deb.nodesource.com/setup_22.x | bash && apt install -y nodejs

after that act started failin here with:

❗ ::error::Input required and not supplied: distribution

I didn't find a workaround, so I had to hardcode the distribution value.

Finally, the Swift compilation still fails in the benchmark-java flow; it's a different failure each time, and I am still trying to understand the root cause.

Perhaps the contribution guide and the .github files could be updated with some swift-java specific recommendations for running act?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the act instructions in CONTRIBUTING.md and reproduce the documented command for .github/workflows/pull_request.yml, including the benchmark-java job. Inspect the referenced workflow step around line 108 and .github/actions/prepare_env/action.yml around line 13 for the missing node and distribution failures. Done means the Swift compilation path works locally with act, or the contribution guide and .github files clearly document verified swift-java-specific requirements and limitations.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, java, swift
Domain
ci-cd, devops, documentation
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.