-
Notifications
You must be signed in to change notification settings - Fork 59
117 lines (101 loc) · 4.97 KB
/
clients-java.child.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
name: "clients/java module (child)"
on:
# Triggered from other workflows.
workflow_call:
inputs:
directory:
description: "directory: Working directory for the job execution"
required: true
type: "string"
default: "./"
copyArtifacts:
description: "copyArtifacts: Whether artifacts from previous jobs should be copied or not"
required: false
type: "boolean"
default: true
genModuleEnable:
description: "genModuleEnable: Enable generation of client code from server modules that contain API definition files (.kmd)"
required: false
type: "boolean"
default: false
genModuleServerVersion:
description: "genModuleServerVersion: Server version from which to generate client code"
required: false
type: "string"
default: "dev"
runnerGroup:
description: "runnerGroup: Set of runners where the workflow jobs should be run"
required: false
type: "string"
default: "Linux"
defaults:
run:
shell: "bash --noprofile --norc -o errexit -o errtrace -o pipefail -o nounset -o xtrace {0}"
jobs:
build:
runs-on: ["self-hosted", "${{ inputs.runnerGroup }}"]
timeout-minutes: 30
steps:
# Action: https://github.com/actions/checkout
- name: "Checkout"
uses: "actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11" # v4.1.1
- name: "Configure the environment for ci-scripts/"
working-directory: "ci-scripts/"
run: |
echo "$PWD" >>$GITHUB_PATH
echo "CI_SCRIPTS_PATH=$PWD" >>$GITHUB_ENV
echo "JOB_TIMESTAMP=$(date --utc +%Y%m%d%H%M%S)" >>$GITHUB_ENV
# Action: https://github.com/actions/download-artifact
- name: "Copy artifacts from previous jobs"
id: "copy-artifacts"
if: ${{ inputs.copyArtifacts }}
uses: "actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a" # v3.0.2
with:
name: "artifacts"
path: "artifacts/"
- name: "Configure the environment for job script"
run: |
# Env vars used by `ci_job_deploy_java.sh`.
echo "ENV_PATH=$GITHUB_ENV" >>$GITHUB_ENV
# Path to the Maven settings.xml file.
echo "MAVEN_SETTINGS_PATH=$GITHUB_WORKSPACE/clients/java/maven-settings/settings.xml" >>$GITHUB_ENV
# Make sure that the output directory for artifacts exists.
# When `!inputs.copyArtifacts`, `copy-artifacts` output is empty.
MAVEN_LOCAL_REPOSITORY_PATH="${{ steps.copy-artifacts.outputs.download-path }}"
MAVEN_LOCAL_REPOSITORY_PATH="${MAVEN_LOCAL_REPOSITORY_PATH:-"$PWD/maven-repository"}"
mkdir --parents "$MAVEN_LOCAL_REPOSITORY_PATH"
# Env vars used by the Maven settings.xml file.
echo "MAVEN_LOCAL_REPOSITORY_PATH=$MAVEN_LOCAL_REPOSITORY_PATH" >>$GITHUB_ENV
echo "KURENTO_MAVEN_SONATYPE_USERNAME=${{ secrets.KURENTO_MAVEN_SONATYPE_USERNAME }}" >>$GITHUB_ENV
echo "KURENTO_MAVEN_SONATYPE_PASSWORD=${{ secrets.KURENTO_MAVEN_SONATYPE_PASSWORD }}" >>$GITHUB_ENV
echo "KURENTO_MAVEN_DOWNLOAD_USERNAME=${{ secrets.KURENTO_MAVEN_DOWNLOAD_USERNAME }}" >>$GITHUB_ENV
echo "KURENTO_MAVEN_DOWNLOAD_PASSWORD=${{ secrets.KURENTO_MAVEN_DOWNLOAD_PASSWORD }}" >>$GITHUB_ENV
echo "KURENTO_MAVEN_UPLOAD_USERNAME=${{ secrets.KURENTO_MAVEN_UPLOAD_USERNAME }}" >>$GITHUB_ENV
echo "KURENTO_MAVEN_UPLOAD_PASSWORD=${{ secrets.KURENTO_MAVEN_UPLOAD_PASSWORD }}" >>$GITHUB_ENV
# Env vars used by `maven_deploy_github.sh`.
echo "GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}" >>$GITHUB_ENV
# Env vars used by `run` steps.
echo "WORKING_DIRECTORY=${{ inputs.directory }}" >>$GITHUB_ENV
- name: "Run job script (generate)"
if: ${{ inputs.genModuleEnable }}
working-directory: "${{ env.WORKING_DIRECTORY }}"
run: |
ci_job_generate_module.sh --java --server-version "${{ inputs.genModuleServerVersion }}"
# Change WORKING_DIRECTORY so it points to the newly generated dir.
echo "WORKING_DIRECTORY=$WORKING_DIRECTORY/build/java" >>$GITHUB_ENV
- name: "Configure the environment for job script (deploy)"
run: |
# Path to the GPG key used by `maven_deploy.sh`.
# Note: No need to clean, $RUNNER_TEMP/ is deleted after each run.
MAVEN_GPG_KEY_PATH="$RUNNER_TEMP/maven.gpg"
echo "MAVEN_GPG_KEY_PATH=$MAVEN_GPG_KEY_PATH" >>$GITHUB_ENV
echo "${{ secrets.MAVEN_PRIVATE_GPG_KEY }}" >"$MAVEN_GPG_KEY_PATH"
- name: "Run job script (deploy)"
working-directory: "${{ env.WORKING_DIRECTORY }}"
run: "ci_job_deploy_java.sh"
# Action: https://github.com/actions/upload-artifact
- name: "Archive the artifacts"
uses: "actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce" # v3.1.2
with:
name: "artifacts"
path: "${{ env.MAVEN_LOCAL_REPOSITORY_PATH }}"