Skip to content

Commit 0be4c42

Browse files
committed
ci: Add GH workflow
1 parent c4e51ed commit 0be4c42

1 file changed

Lines changed: 159 additions & 0 deletions

File tree

.github/workflows/run_ci.yml

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
pull_request:
7+
branches: [ "main" ]
8+
schedule:
9+
- cron: '20 0 * * *'
10+
11+
env:
12+
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
13+
JAVA_TOOL_OPTIONS: ""
14+
SECRET_DETECTION_JSON_REPORT_FILE: "gitleaks.json"
15+
16+
jobs:
17+
spotless:
18+
runs-on: ubuntu-latest
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v4
22+
- name: Spotless check
23+
run: ./gradlew spotlessCheck
24+
25+
license_check:
26+
runs-on: ubuntu-latest
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@v4
30+
- name: License check
31+
run: |
32+
./license_checker.sh '*.java' | tee license_check_output.txt
33+
[ ! -s license_check_output.txt ]
34+
35+
secret_detection:
36+
runs-on: ubuntu-latest
37+
steps:
38+
- name: Checkout
39+
uses: actions/checkout@v4
40+
with:
41+
fetch-depth: 0
42+
- name: Install and run secret detection
43+
run: |
44+
wget https://github.com/gitleaks/gitleaks/releases/download/v8.18.4/gitleaks_8.18.4_linux_x64.tar.gz
45+
tar -xzf gitleaks_8.18.4_linux_x64.tar.gz
46+
EXITCODE=0
47+
./gitleaks detect -r ${SECRET_DETECTION_JSON_REPORT_FILE} --source . --log-opts="--all --full-history" || EXITCODE=$?
48+
if [[ $EXITCODE -ne 0 ]]; then
49+
exit $EXITCODE
50+
fi
51+
- name: Upload secret detection artifact
52+
uses: actions/upload-artifact@v4
53+
with:
54+
name: secret-detection-results
55+
path: gitleaks.json
56+
57+
58+
build:
59+
runs-on: ubuntu-latest
60+
steps:
61+
- name: Checkout
62+
uses: actions/checkout@v4
63+
- name: Build
64+
run: ./gradlew assemble
65+
- name: Upload artifacts
66+
uses: actions/upload-artifact@v4
67+
with:
68+
name: build-artifacts
69+
path: deepl-java/build/
70+
71+
72+
73+
# Test and `gradlew publish` stage are disabled for now. Code needs to be tested
74+
75+
#######################################################
76+
# test_cl:
77+
# runs-on: ${{ matrix.docker-image }}
78+
# strategy:
79+
# matrix:
80+
# docker-image:
81+
# - 'eclipse-temurin:8-focal'
82+
# - 'openjdk:8-alpine'
83+
# - 'eclipse-temurin:11-alpine'
84+
# - 'eclipse-temurin:17-alpine'
85+
# - 'eclipse-temurin:18-alpine'
86+
# - 'eclipse-temurin:19-alpine'
87+
# use-mock-server:
88+
# - ''
89+
# - 'use mock server'
90+
# env:
91+
# DEEPL_SERVER_URL: http://deepl-mock:3000
92+
# DEEPL_MOCK_SERVER_PORT: 3000
93+
# DEEPL_PROXY_URL: http://deepl-mock:3001
94+
# DEEPL_MOCK_PROXY_SERVER_PORT: 3001
95+
# steps:
96+
# - name: Checkout
97+
# uses: actions/checkout@v4
98+
# - name: Start mock server
99+
# if: ${{ matrix.use-mock-server == 'use mock server' }}
100+
# run: docker run --name deepl-mock -d -p 3000:3000 deepl-mock
101+
# - name: Start mock proxy server
102+
# if: ${{ matrix.use-mock-server == 'use mock server' }}
103+
# run: docker run --name deepl-mock-proxy -d -p 3001:3001 deepl-mock-proxy
104+
# - name: Test
105+
# run: |
106+
# if [[ ! -z "${{ matrix.use-mock-server }}" ]]; then
107+
# echo "Using mock server"
108+
# export DEEPL_SERVER_URL=http://deepl-mock:3000
109+
# export DEEPL_MOCK_SERVER_PORT=3000
110+
# export DEEPL_PROXY_URL=http://deepl-mock:3001
111+
# export DEEPL_MOCK_PROXY_SERVER_PORT=3001
112+
# fi
113+
# ./gradlew test
114+
# - name: Stop mock proxy server
115+
# if: ${{ matrix.use-mock-server == 'use mock server' }}
116+
# run: docker stop deepl-mock-proxy
117+
# - name: Stop mock server
118+
# if: ${{ matrix.use-mock-server == 'use mock server' }}
119+
# run: docker stop deepl-mock
120+
# - name: Upload test results
121+
# uses: actions/upload-artifact@v4
122+
# with:
123+
# name: test-results
124+
# path: deepl-java/build/reports/tests/test
125+
126+
# test_examples:
127+
# runs-on: ${{ matrix.docker-image }}
128+
# strategy:
129+
# matrix:
130+
# docker-image:
131+
# - 'maven:3.9'
132+
# - 'maven:3.8-openjdk-18-slim'
133+
# - 'maven:3.8-openjdk-8-slim'
134+
# - 'maven:3.9-sapmachine-17'
135+
# - 'maven:3.9-eclipse-temurin-8'
136+
# - 'maven:3.9-eclipse-temurin-21'
137+
# steps:
138+
# - name: Checkout
139+
# uses: actions/checkout@v4
140+
# - name: Test examples
141+
# run: |
142+
# cd examples/maven/deepl-test-app
143+
# mvn install -B -PbuildProject -l mvn_build.log
144+
# mvn verify -PrunIntegrationTests
145+
# - name: Upload test results
146+
# uses: actions/upload-artifact@v4
147+
# with:
148+
# name: test-results
149+
# path: examples/maven/deepl-test-app/mvn_build.log
150+
151+
# publish:
152+
# runs-on: ubuntu-latest
153+
# needs: [ build ]
154+
# if: startsWith(github.ref, 'refs/tags/v')
155+
# steps:
156+
# - name: Checkout
157+
# uses: actions/checkout@v4
158+
# - name: Publish
159+
# run: ./gradlew publish

0 commit comments

Comments
 (0)