Skip to content

Commit

Permalink
feat: Windows images (#21)
Browse files Browse the repository at this point in the history
* feat: add Windows images (wip)

Ref: jenkins-infra/helpdesk#2873

* debug: only interesting images

* debug: pr lib

* no container, we want a VM to build windows docker images

* Update maven/jdk8/Dockerfile.nanoserver

* Update Jenkinsfile_k8s

* Update Jenkinsfile_k8s

* Update Jenkinsfile_k8s

* deprecated mainBranch arg

* Update Jenkinsfile_k8s

* add platform pipeline arg

* add cst test & image

* fix: global pipeline lib

* fix new pr

* slash in Windows paths for container-structure-test

* fix paths

* fix paths

* Update common-cst-windows.yml

* feat: add all images

* no pwd test on windows

* align entrypoint of Windows Server Core image ("pwsh.exe" VS "powershell.exe")

* fix entrypoint
  • Loading branch information
lemeurherve authored May 24, 2022
1 parent bbee8ba commit fa87a21
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 7 deletions.
36 changes: 29 additions & 7 deletions Jenkinsfile_k8s
Original file line number Diff line number Diff line change
@@ -1,35 +1,57 @@
def principalBranch = 'main'

parallel(
failFast: false,
'maven-jdk8': {
buildDockerAndPublishImage('inbound-agent-maven:jdk8', [
mainBranch: principalBranch,
dockerfile: 'maven/jdk8/Dockerfile',
useContainer: false,
])
},
'maven-jdk8-nanoserver': {
buildDockerAndPublishImage('inbound-agent-maven:jdk8-nanoserver', [
dockerfile: 'maven/jdk8/Dockerfile.nanoserver',
agentLabels: 'windows',
platform: 'windows/amd64',
useContainer: false,
])
},
'maven-jdk11': {
buildDockerAndPublishImage('inbound-agent-maven:jdk11', [
mainBranch: principalBranch,
dockerfile: 'maven/jdk11/Dockerfile',
useContainer: false,
])
},
'maven-jdk11-nanoserver': {
buildDockerAndPublishImage('inbound-agent-maven:jdk11-nanoserver', [
dockerfile: 'maven/jdk11/Dockerfile.nanoserver',
agentLabels: 'windows',
platform: 'windows/amd64',
useContainer: false,
])
},
'maven-jdk11-windowsservercore-1809': {
buildDockerAndPublishImage('inbound-agent-maven:jdk11-windowsservercore-1809', [
dockerfile: 'maven/jdk11/Dockerfile.windowsservercore-1809',
agentLabels: 'windows',
platform: 'windows/amd64',
useContainer: false,
])
},
'maven-jdk17': {
buildDockerAndPublishImage('inbound-agent-maven:jdk17', [
mainBranch: principalBranch,
dockerfile: 'maven/jdk17/Dockerfile',
useContainer: false,
])
},
'node': {
buildDockerAndPublishImage('inbound-agent-node', [
mainBranch: principalBranch,
dockerfile: 'node/Dockerfile',
useContainer: false,
])
},
'ruby': {
buildDockerAndPublishImage('inbound-agent-ruby', [
mainBranch: principalBranch,
dockerfile: 'ruby/Dockerfile',
useContainer: false,
])
},
'updatecli': {
Expand Down
25 changes: 25 additions & 0 deletions common-cst-windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
schemaVersion: 2.0.0

metadataTest:
entrypoint: ["pwsh.exe", "-f", "C:/ProgramData/Jenkins/jenkins-agent.ps1"]

fileExistenceTests:

- name: 'Jenkins agent'
path: 'C:/ProgramData/Jenkins/jenkins-agent.ps1'
shouldExist: true
isExecutableBy: 'any'
- name: 'Jenkins agent jar file'
path: 'C:/ProgramData/Jenkins/agent.jar'
shouldExist: true
- name: "Default user's home"
path: 'C:/users/jenkins/'
shouldExist: true
- name: 'cmd'
path: 'C:/Windows/System32/cmd.exe'
shouldExist: true
isExecutableBy: 'any'
- name: 'Git'
path: 'C:/mingit/mingw64/bin/git.exe'
shouldExist: true
isExecutableBy: 'any'
2 changes: 2 additions & 0 deletions maven/jdk11/Dockerfile.nanoserver
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Use https://github.com/jenkinsci/jnlp-agents as base for now
FROM jenkins/jnlp-agent-maven:windows-nanoserver-jdk11 AS jnlp
4 changes: 4 additions & 0 deletions maven/jdk11/Dockerfile.windowsservercore-1809
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Use https://github.com/jenkinsci/docker-inbound-agent as base for now
FROM jenkins/inbound-agent:windowsservercore-1809 AS inbound-windows-server-core

ENTRYPOINT ["pwsh.exe", "-f", "C:/ProgramData/Jenkins/jenkins-agent.ps1"]
2 changes: 2 additions & 0 deletions maven/jdk8/Dockerfile.nanoserver
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Use https://github.com/jenkinsci/jnlp-agents as base for now
FROM jenkins/jnlp-agent-maven:windows-nanoserver AS jnlp

0 comments on commit fa87a21

Please sign in to comment.