-
Notifications
You must be signed in to change notification settings - Fork 0
128 lines (127 loc) · 4.48 KB
/
provision.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
name: "Jenkins CI Runners"
on:
workflow_dispatch:
inputs:
AGENT_HOST:
description: agent host
required: true
type: string
AGENT_FORWARD_PORT:
description: agent forward port
required: true
type: string
JENKINS_JOB_NAME:
description: Jenkins Job Name
required: true
type: string
JENKINS_JOB_BUILD_NUMBER:
description: Jenkins Job Build Number
required: true
type: number
MAVEN_WAIT_TIMEOUT:
description: Maven startup wait timeout
required: false
default: 60
type: number
maven_version:
description: Maven version
default: "3.9.9"
required: false
type: string
jdk_major_version:
description: JDK Major version (eg 8, 11, 14, 17, 21,...)
default: 21
required: false
type: number
maximize_build_space:
description: Maximize Build Space for Bigger Projects Unit tests based on files and blocks
type: boolean
required: false
default: false
jobs:
provision:
name: "Build ${{ inputs.JENKINS_JOB_NAME }} #${{ inputs.JENKINS_JOB_BUILD_NUMBER }}"
runs-on: ubuntu-24.04
timeout-minutes: 120
concurrency:
group: ${{ inputs.JENKINS_JOB_NAME }}
cancel-in-progress: true
steps:
# Hack: Maximize Disk space for big & legacy projects (May become unsupported in future Azure runner releases)
- name: Maximize build space
uses: easimon/maximize-build-space@v10
if: ${{ inputs.maximize_build_space == true }}
with:
root-reserve-mb: 2048
temp-reserve-mb: 2048
swap-size-mb: 1024
remove-dotnet: 'true'
remove-android: 'true'
- name: Checkout repository
uses: actions/checkout@v4
# Setup Maven
- name: Set up Maven ${{ inputs.maven_version }}
uses: stCarolas/setup-maven@v5
with:
maven-version: ${{ inputs.maven_version }}
# Restore Cache Maven Artifcats to boost up builds
- name: Restore Maven artifacts Cache
uses: actions/cache/restore@v4
with:
path: ~/.m2/repository
key: generic-m2-repository
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.PRIVATE_KEY }}
known_hosts: ${{ secrets.KNOWN_HOSTS }}
config: |
Host ${{ inputs.AGENT_HOST }}
HostName ${{ inputs.AGENT_HOST }}
User ${{ secrets.USERNAME }}
Port ${{ secrets.PORT }}
StrictHostKeyChecking no
- name: Setup JDK Environment Variables
run: |
sudo update-alternatives --remove-all java
sudo update-alternatives --remove-all javac
echo "export JAVA_HOME=${JAVA_HOME_${{ inputs.jdk_major_version }}_X64}" | sudo tee -a /etc/profile
sudo update-alternatives --install /usr/bin/java java ${JAVA_HOME_${{ inputs.jdk_major_version }}_X64}/bin/java 9999
sudo update-alternatives --install /usr/bin/javac javac ${JAVA_HOME_${{ inputs.jdk_major_version }}_X64}/bin/javac 9999
- name: Setup Maven for SSH Connection
run: |
ghaRunnerURL="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
cat > runnerinfo << EOF
echo "${ghaRunnerURL}"
EOF
sudo mv runnerinfo /usr/bin/
sudo chmod +x /usr/bin/runnerinfo
cat > mvn << EOF
. /etc/profile
echo $\$ > /tmp/.mvnpid
/opt/hostedtoolcache/maven/${{ inputs.maven_version }}/x64/bin/mvn -V \$@
EOF
sudo mv mvn /usr/bin/
sudo chmod +x /usr/bin/mvn
echo "KillUserProcesses=yes" | sudo tee -a /etc/systemd/logind.conf
sudo systemctl restart systemd-logind.service
- name: Init gnupg for signing artifacts
run: |
chmod +x initgpg.sh
./initgpg.sh
env:
AGENT_HOST: ${{ inputs.AGENT_HOST }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
- name: Connect to agent
run: |
chmod +x daemon.sh
echo "Staring agent daemon..."
./daemon.sh
env:
MAVEN_WAIT_TIMEOUT: ${{ inputs.MAVEN_WAIT_TIMEOUT }}
AGENT_HOST: ${{ inputs.AGENT_HOST }}
AGENT_FORWARD_PORT: ${{ inputs.AGENT_FORWARD_PORT }}
- name: Stop runner
if: always()
run: |
echo "Job has been stopped"