-
Notifications
You must be signed in to change notification settings - Fork 10
116 lines (103 loc) · 4.15 KB
/
ci-java.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
name: vaas-java-ci
on:
push:
branches:
- main
paths:
- "java/**"
- ".github/workflows/ci-java.yaml"
tags:
- "java*"
pull_request:
branches:
- main
paths:
- "java/**"
- ".github/workflows/ci-java.yaml"
workflow_dispatch:
inputs:
environment:
type: choice
description: "Test environment"
options:
- production
- staging
default: "production"
env:
CLIENT_ID: ${{ secrets.CLIENT_ID }}
CLIENT_SECRET: ${{ (inputs.environment == 'production' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/java')) && secrets.CLIENT_SECRET || secrets.STAGING_CLIENT_SECRET }}
VAAS_URL: ${{ (inputs.environment == 'production' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/java')) && 'wss://gateway.production.vaas.gdatasecurity.de' || 'wss://gateway.staging.vaas.gdatasecurity.de' }}
TOKEN_URL: ${{ (inputs.environment == 'production' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/java')) && 'https://account.gdata.de/realms/vaas-production/protocol/openid-connect/token' || 'https://account-staging.gdata.de/realms/vaas-staging/protocol/openid-connect/token' }}
jobs:
build-java:
name: Build & Test Java SDK
runs-on: ubuntu-20.04
steps:
- name: checkout
uses: actions/checkout@v3
- name: install Java
uses: actions/setup-java@v3
with:
java-version: "17"
distribution: "adopt"
- name: setup Gradle
uses: gradle/gradle-build-action@v2
with:
gradle-version: "8.1"
- name: run tests
uses: gradle/gradle-build-action@v2
with:
arguments: test
gradle-version: "8.1"
build-root-directory: java
- name: run examples for file
env:
SCAN_PATH: "src/main/java/de/gdata/vaasexample/Main.java"
uses: gradle/gradle-build-action@v2
with:
arguments: fileScan
gradle-version: "8.1"
build-root-directory: java/examples/VaasExample
- name: run examples for url
uses: gradle/gradle-build-action@v2
with:
arguments: urlScan
gradle-version: "8.1"
build-root-directory: java/examples/VaasExample
- name: extract version
if: startsWith(github.ref, 'refs/tags/java')
run: |
echo "RELEASE_VERSION=${GITHUB_REF#refs/*/java}" >> $GITHUB_ENV
echo $RELEASE_VERSION
- name: set version
if: startsWith(github.ref, 'refs/tags/java')
run: |
sed -i "s/version = '0\.0\.0'/version = '$RELEASE_VERSION'/g" ./java/build.gradle
- name: publish Maven package
if: startsWith(github.ref, 'refs/tags/java')
env:
ORG_GRADLE_PROJECT_username: ${{ secrets.ORG_GRADLE_PROJECT_USERNAME }}
ORG_GRADLE_PROJECT_password: ${{ secrets.ORG_GRADLE_PROJECT_PASSWORD }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }}
uses: gradle/gradle-build-action@v2
with:
arguments: publish
gradle-version: "8.1"
build-root-directory: java
- name: push to Maven Central
if: startsWith(github.ref, 'refs/tags/java')
env:
ORG_GRADLE_PROJECT_username: ${{ secrets.ORG_GRADLE_PROJECT_USERNAME }}
ORG_GRADLE_PROJECT_password: ${{ secrets.ORG_GRADLE_PROJECT_PASSWORD }}
uses: gradle/gradle-build-action@v2
with:
arguments: closeAndReleaseRepository
gradle-version: "8.1"
build-root-directory: java
- name: Microsoft Teams Notification
uses: skitionek/notify-microsoft-teams@master
if: failure()
with:
webhook_url: ${{ secrets.MSTEAMS_WEBHOOK }}
overwrite: "{title: `Failed workflow on for VaaS-SDK ${workflow}`, sections: [{activityTitle: 'build failed', activitySubtitle: `Failed workflow on for VaaS-SDK ${workflow}`, activityImage: 'https://adaptivecards.io/content/cats/3.png'}], themeColor: '#ff0000'}"