-
Notifications
You must be signed in to change notification settings - Fork 45
129 lines (114 loc) · 4.38 KB
/
build-and-run-tests.yml
File metadata and controls
129 lines (114 loc) · 4.38 KB
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
129
name: "UTBot Java: build and run tests"
on:
push:
branches:
- 'main'
- 'unit-test-bot/r**'
pull_request:
branches:
- 'main'
- 'unit-test-bot/r**'
env:
REGISTRY: ghcr.io
jobs:
build-and-run-tests:
uses: ./.github/workflows/build-and-run-tests-from-branch.yml
secrets: inherit
publish_plugin:
needs: build-and-run-tests
uses: ./.github/workflows/publish-plugin-from-branch.yml
with:
# upload artifacts on push action to main only
upload-artifact: ${{ github.event_name == 'push' }}
secrets: inherit
publish_cli:
needs: build-and-run-tests
uses: ./.github/workflows/publish-cli-from-branch.yml
with:
# upload artifacts on push action to main only
upload-artifact: ${{ github.event_name == 'push' }}
secrets: inherit
publish-cli-image:
needs: build-and-run-tests
# The line is commented for testing.
# if: ${{ github.event_name == 'push' }}
strategy:
fail-fast: false # force to execute all jobs even though some of them have failed
matrix:
configuration:
- image_name: utbot_java_cli
directory: utbot-cli
extra_options: ""
- image_name: utbot_js_cli
directory: utbot-cli-js
extra_options: "-PbuildType=ALL"
# we can't use utbot_python_cli image name because of the bug while pushing image
# ERROR: unexpected status: 403 Forbidden
- image_name: utbot_py_cli
directory: utbot-cli-python
extra_options: ""
- image_name: utbot_go_cli
directory: utbot-cli-go
extra_options: ""
runs-on: ubuntu-20.04
container: unittestbot/java-env:java17-zulu-jdk-gradle7.6.1-kotlinc1.8.0
steps:
- uses: actions/checkout@v3
# "You can make an environment variable available to any subsequent steps in a workflow job by
# defining or updating the environment variable and writing this to the GITHUB_ENV environment file."
- name: Set environment variables
run: |
echo VERSION="$(date +%Y).$(date +%-m)" >> $GITHUB_ENV
echo DOCKER_TAG="$(date +%Y).$(date +%-m).$(date +%-d)-$(echo -n ${GITHUB_SHA} | cut -c 1-7)" >> $GITHUB_ENV
- name: Print environment variables
run: printenv
- name: Build UTBot CLI
run: |
cd ${{ matrix.configuration.directory }}
gradle build --no-daemon --build-cache --no-parallel ${{ matrix.configuration.extra_options }} -Dorg.gradle.jvmargs=-Xmx2g -Dkotlin.daemon.jvm.options=-Xmx4g -x test -PsemVer=${{ env.VERSION }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
with:
# fix of containerd issue, see https://github.com/containerd/containerd/issues/7972
# could be removed as soon as new containerd version will be released and included in buildkit
driver-opts: |
image=moby/buildkit:v0.10.6
- name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ matrix.configuration.image_name }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-${{ matrix.configuration.image_name }}-
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ github.repository }}/${{ matrix.configuration.image_name }}
tags: |
type=raw,value=${{ env.DOCKER_TAG }}
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: |
${{ steps.meta.outputs.tags }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
file: ${{ matrix.configuration.directory }}/Dockerfile
build-args: |
ARTIFACT_PATH=${{ matrix.configuration.directory }}/build/libs/${{ matrix.configuration.directory }}-${{ env.VERSION }}.jar
# Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache