Can default repository of artifact configured as Nexus in docker? - sap-cloud-sdk

Our project enabled Cloud SDK Pipeline. Upon a pull request, the pr job from Pipeline was triggered, and it tried to build with artifacts downloaded from: https://repo.maven.apache.org/maven2. However some dependencies of the project are not available in that repo. We would expect to connect to Nexus repo by default, as all dependencies are available there. Is it possible to configure docker in that way?
12:46:45 [ERROR] Non-resolvable import POM: Could not find artifact
com.sap.sgs:security-patched-spring-boot-dependencies:pom:2.1.7.RELEASE-sap-06
in central (https://repo.maven.apache.org/maven2) # line 28, column 22
12:46:45 [ERROR] 'dependencies.dependency.version' for
org.springframework.boot:spring-boot-starter-test:jar is missing. #
line 183, column 19
12:46:45 [ERROR] 'dependencies.dependency.version' for
org.springframework.boot:spring-boot-starter-actuator:jar is missing.
# line 187, column 19
12:46:45 [ERROR] 'dependencies.dependency.version' for
org.springframework.boot:spring-boot-starter-aop:jar is missing. #
line 191, column 19

You can configure this in own settings file as described in the maven documentation
And then configure the settings file in the pipeline config as described in the pipeline guide.
Example Settings file
<settings>
<mirrors>
<mirror>
<id>internal-repository</id>
<name>Maven Repository Manager running on repo.mycompany.com</name>
<url>http://repo.mycompany.com/proxy</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
</settings>
Sample pipeline config
mavenExecute:
dockerImage: maven:3.6.1-jdk-8-alpine
projectSettingsFile: "settings.xml"

The Cx Server comes with a read-only download cache to boost build performance and reduce redundant downloads of dependencies. It is active by default and transparently injected into maven and npm builds. By default it uses maven central and the official npm registry for looking up and downloading dependencies.
To set up a custom maven or npm repository, e.g., a corporate nexus that also holds internal artifacts, you can use the attributes mvn_repository_url and npm_repository_url in server.cfg (make sure to stop, remove, and start the Cx Server after making the configuration change).
More information can be found in the Cx Server operations guide: https://github.com/SAP/devops-docker-cx-server/blob/master/docs/operations/cx-server-operations-guide.md#configuring-the-cx-server

Related

Windows Job Runner from Linux Cluster (Enterprise)

The documentation from what I have found is a bit sparse on the setup of job runner nodes. I am wondering if anyone has set up a config - Rundeck Linux Cluster with a Windows Job Runner. I was able to install the .jar and all that on the Windows node and it appears and is able to communicate via Runner Management.
Where I am stuck and it gets ambiguous his how to properly specify to use the job runner. This is my current setup:
job runner installed and is green in Runner Management and assigned to my project
IN Project config I have Runner selected as the Default Node Executioner
Default File Copier is also set to runner-file-copier
Under Project nodes
I setup a Node Wizard - here is the edited yaml:
mydomain:
nodename: nodename
hostname: jobrunnerhost.domain
osFamily: windows
node-executor: runner-node-exec
file-copier: runner-file-copier
Under the jobs I have it set to the appropriate node.
I am getting this error when I try and run anything either a simple DIR command or executing a basic powershell:
Execution failed: 28 in project Server.Validation.mynode: [Workflow result: , step failures: {1=Dispatch failed on 1 nodes: [mynode: COPY_ERROR: Reason: FILE_COPIER_NOT_FOUNDUnable to find file copier: runner-file-copier]}, Node failures: {mynode=[COPY_ERROR: Reason: FILE_COPIER_NOT_FOUNDUnable to find file copier: runner-file-copier]}, status: failed]
I have tried setting up multiple ways. I feel as though I am missing a config or another step somewhere. Any help is appreciated.

found errors in your .gitlab-ci.yml: local file does not have project

In my GitLab project I specify my CI configuration file at https://raw.githubusercontent.com/Nakama-Partnering-Services/project-scaffolding/main/.gitlab-ci.yml.
If I try to use includes: environments.yml it fails with:
local file environments.yml does not have project!
Even if such yml file exist in my GitLab project: https://gitlab.com/jdkgabri/project-scaffolding (althoug I removed in the latest commits)
My aim is to separate the .dest-envs config in line 43 to specify the different values at project level, by having an environments.yml in the project with this config, including always the file with that name, so that I can mantain a single .gitlab-ci.yml in the public remote repo, to be used in a generic way across different GitLab projects that may require different environments (see TODO in line 81).
How can I make includes local work with a remote gitlab-ci.yml?

runing an Azure DevOps pipeline for a Talend ESB project maven error

I'm trying to run an Azure DevOps pipeline for talend ESB project but I got this error message:
[ERROR] Failed to execute goal on project routines: Could not resolve dependencies for project org.example.local_project.code:routines:jar:7.3.1: Could not find artifact org.talend.libraries:crypto-utils:jar:5.2.0 in central (https://repo.maven.apache.org/maven2) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <args> -rf :routines
Any help please.
According to the error message log, this error generally occurs when Maven could not download dependencies. Possible causes for this error are:
The POM misses the declaration of the which hosts the
artifact.
The repository you have configured requires authentication and Maven
failed to provide the correct credentials to the server. In this
case, make sure your ${user.home}/.m2/settings.xml contains a
declaration whose matches the of the remote
repository to use. See the Maven Settings Reference for more
details.
The remote repository in question uses SSL and the JVM running Maven
does not trust the certificate of the server.
There is a general network problem that prevents Maven from
accessing any remote repository, e.g. a missing proxy configuration.
You have configured Maven to perform strict checksum validation and
the files to download got corrupted.
Maven failed to save the files to your local repository, see
LocalRepositoryNotAccessibleException for more details.
You can refer to this document to troubleshoot.

VSTS - Build a Docker Image

I have a .NET Core repo in VSTS. I'm trying to create a Build pipeline that builds a Docker image and adds it to my Azure Container Registry. My Build pipeline has a Docker task. This task has the "Build an image" action selected. This action relies on my Dockerfile, which looks like this:
FROM microsoft/dotnet:2.1.2-runtime-nanoserver-1803
# Install .NET Core
ENV DOTNET_VERSION 2.1.2
When my Build pipeline runs, I get an error that says:
failed to register layer: re-exec error: exit status 1: output: ProcessUtilityVMImage \\?\C:\ProgramData\docker\windowsfilter\82aba535faccd8bf0e5ce3c122247672fa671214000a12c5481972212c5e2ca0\UtilityVM: The system cannot find the path specified.
##[error]C:\Program Files\Docker\docker.exe failed with return code: 1
Why am I getting this error? How do I fix it?
It should be the same issue with this one : https://github.com/Microsoft/vsts-tasks/issues/6510
Seems it still have some issues with nanoserver-1803
Just try to setup and host a custom agent on Azure VM, then check it again.
https://github.com/Microsoft/vsts-tasks/issues/6510#issuecomment-370152300
I found maybe an explication about this error: VSTS agents seem not
support nanoserver-1709 actually. Maybe this will change with the next
version 1803.
See details here: Microsoft/vsts-agent#1393
When I setup and host a custom agent on a machine on Azure, it's
working. So it's not a bug with this task. I close this issue. Thanks!

(remote rejected) master -> master (pre-receive hook declined), Push rejected, failed to compile Node.js app

I know that there's couple posts like this one, but solution of any of them works for me.
Here is what I receive when I go for git push heroku master:
Please support. Ignoring node_modules is not working.
Docpad app - package.json file is updated according to docpad's manual.
I also have Procfile set up as in the link above.
PS. I have tried to deploy docpad app via openshift, but while Im going with manual from http://docpad.org/docs/deploy/ I receive error at step 5.
The application 'appname' is configured for git reference deployments but the
artifact provided ('https://github.com/myusername/appname#master') is a url.
Please provide a git reference to deploy (branch, tag or commit SHA1) or
configure your app to deploy from binaries with 'rhc configure-app appname
--deployment-type binary'.
If I configure myapp to deployment-type binary it isnt working neither.
The plugin which heroku tries to install returned 404 and the installation fails due to that.
Verify that the plugin is indeed public and not something you have wrote or used locally.
There is no package with this name hosted on the registry you use.
Remove the line with "docpad-plugin-blah": "2" from your package.json file. That line was provided in the docs simply to show you how to install plugins, but there's no such plugin as blah.
"dependencies": {
"docpad": "6"
},
I strongly recommend that you read through the Getting Started on OpenShift to get an overview of the development workflow using Git.
That being said, and if you really meant to use git reference deployments and you know why you are using them, then read through the Managing Deployments section on the developers page of OpenShift and find out how to properly set up git reference deployments. For instance, 'https://github.com/myusername/appname#master' is not a valid git url and therefore it cannot be cloned.

Resources