sonarcloud-github-action icon indicating copy to clipboard operation
sonarcloud-github-action copied to clipboard

Compatibility with ACT

Open cvalentin-dkt opened this issue 3 years ago • 5 comments

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

cvalentin-dkt avatar Jul 13 '22 12:07 cvalentin-dkt

BUMP. any update on this PR?

PavelA85 avatar Aug 01 '22 10:08 PavelA85

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?

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!

jamesmehorter avatar Sep 27 '22 16:09 jamesmehorter

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 avatar Feb 03 '23 00:02 Porkepix

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

Porkepix avatar Feb 03 '23 11:02 Porkepix