Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compatibility with ACT #35

Closed
wants to merge 1 commit into from

Conversation

cvalentin-dkt
Copy link

Patch to adapt image to work with ACT (https://github.com/nektos/act)

@PavelA85
Copy link

PavelA85 commented Aug 1, 2022

BUMP.
any update on this PR?

@tom-vanbraband-sonarsource
Copy link
Contributor

Hi @cvalentin-dkt,
Could you give me some more details about this PR?

What is currently not working when running this action with ACT?
Why do you run the sonar-scanner directly instead of using the entrypoint.sh script?

@jamesmehorter
Copy link

jamesmehorter commented Sep 27, 2022

When I run a workflow which uses Sonar in Act I get the following output

[CI/SonarCloud] 🐳 docker run image=act-sonarsource-sonarcloud-github-action-master-dockeraction:latest platform= entrypoint=[] cmd=[]
[CI/SonarCloud] [DEBUG] Starting container: 87bb5cf2146104a0c5112744733c27aa38fac743ac5da377ec3531b8514f593c
[CI/SonarCloud] [DEBUG] Started container: 87bb5cf2146104a0c5112744733c27aa38fac743ac5da377ec3531b8514f593c
| /entrypoint.sh: line 24: sonar-scanner: command not found
[CI/SonarCloud] [DEBUG] Return status: 127
[CI/SonarCloud] [DEBUG] Removed container: 87bb5cf2146104a0c5112744733c27aa38fac743ac5da377ec3531b8514f593c
[CI/SonarCloud] ❌ Failure - Main SonarCloud Scan
[CI/SonarCloud] exit with FAILURE: 127
[CI/SonarCloud] [DEBUG] skipping post step for 'actions/checkout@v2': no action model available
[CI/SonarCloud] 🏁 Job failed

Would love to see this merged in!

@Porkepix
Copy link

Porkepix commented Feb 3, 2023

Experiencing the exact same issue as @jamesmehorter here.

From what I understand @tom-vanbraband-sonarsource author isn't running directly the binary, but the entrypoint.sh does, but fails to find it when it's supposed to run it at https://github.com/SonarSource/sonarcloud-github-action/blob/master/entrypoint.sh#L24 ; I don't know how they found out the patch and if a better one could be done, but I could at least check by myself and see it indeed fixes this problem (well, I'm getting a Java crash after that, but at the very least this error isn't here anymore).

So I'd agree that unless another patch would be better I'd be nice to merge the patch for people that want to works locally with act.

@Porkepix
Copy link

Porkepix commented Feb 3, 2023

I'm also using the occasion to ask the author if after patching the Dockerfile, all went well up to the end?

Because here patching it indeed fixes the launch of sonarcloud tooling, but also result in a java issue later on, this way:

Logs of Java stacktrace
| 10:45:52.995 INFO: Load project pull requests (done) | time=140ms
| 10:45:52.998 INFO: Load branch configuration
| 10:45:52.999 INFO: Github event: push
| 10:45:53.022 INFO: ------------------------------------------------------------------------
| 10:45:53.022 INFO: EXECUTION FAILURE
| 10:45:53.022 INFO: ------------------------------------------------------------------------
| 10:45:53.022 INFO: Total time: 1:08.136s
| 10:45:53.053 INFO: Final Memory: 20M/94M
| 10:45:53.054 INFO: ------------------------------------------------------------------------
| 10:45:53.054 ERROR: Error during SonarScanner execution
| java.lang.IllegalStateException: Unable to load component class org.sonar.scanner.scan.filesystem.InputComponentStore
|       at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:52)
|       at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
|       at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
|       at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
|       at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
|       at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
|       at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
|       at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
|       at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
|       at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
|       at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
|       at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
|       at org.picocontainer.DefaultPicoContainer.instantiateComponentAsIsStartable(DefaultPicoContainer.java:1034)
|       at org.picocontainer.DefaultPicoContainer.addAdapterIfStartable(DefaultPicoContainer.java:1026)
|       at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1003)
|       at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767)
|       at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:122)
|       at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109)
|       at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:130)
|       at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123)
|       at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109)
|       at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:58)
|       at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:52)
|       at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
|       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
|       at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
|       at com.sun.proxy.$Proxy0.execute(Unknown Source)
|       at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:189)
|       at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
|       at org.sonarsource.scanner.cli.Main.execute(Main.java:112)
|       at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
|       at org.sonarsource.scanner.cli.Main.main(Main.java:61)
| Caused by: java.lang.IllegalStateException: Unable to load component interface org.sonar.scanner.scan.branch.BranchConfiguration
|       at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:52)
|       at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
|       at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
|       at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
|       at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
|       at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
|       at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
|       at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
|       at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
|       at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
|       at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
|       at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
|       at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
|       at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
|       at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:50)
|       ... 34 more
| Caused by: java.lang.NullPointerException
|       at org.sonar.scanner.ci.GithubActions.extractBranchFromRef(GithubActions.java:126)
|       at org.sonar.scanner.ci.GithubActions.buildPush(GithubActions.java:145)
|       at org.sonar.scanner.ci.GithubActions.autoDetect(GithubActions.java:111)
|       at java.base/java.util.Optional.flatMap(Optional.java:294)
|       at org.sonar.scanner.ci.CiEnvironment.loadParameters(CiEnvironment.java:60)
|       at com.sonarsource.branch.BranchAutoConfiguration.loadParameters(BranchAutoConfiguration.java:39)
|       at com.sonarsource.branch.BranchConfigurationLoaderImpl.load(BranchConfigurationLoaderImpl.java:50)
|       at org.sonar.scanner.scan.branch.BranchConfigurationProvider.provide(BranchConfigurationProvider.java:33)
|       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
|       at org.picocontainer.injectors.MethodInjector.invokeMethod(MethodInjector.java:129)
|       at org.picocontainer.injectors.MethodInjector.access$000(MethodInjector.java:39)
|       at org.picocontainer.injectors.MethodInjector$2.run(MethodInjector.java:113)
|       at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
|       at org.picocontainer.injectors.MethodInjector.decorateComponentInstance(MethodInjector.java:120)
|       at org.picocontainer.injectors.CompositeInjector.decorateComponentInstance(CompositeInjector.java:58)
|       at org.picocontainer.injectors.Reinjector.reinject(Reinjector.java:142)
|       at org.picocontainer.injectors.ProviderAdapter.getComponentInstance(ProviderAdapter.java:96)
|       at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
|       at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
|       at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:50)
|       ... 48 more
[Tests/sonarcloud] [DEBUG] Return status: 1

@istvan-bodo-sonarsource
Copy link
Contributor

Tested with ACT and the mentioned error does not occur.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
7 participants