Skip to content

Commit 0d7303c

Browse files
authored
ci: validate unmanaged dependency check in a few downstream repositories (#2426)
1 parent acdde47 commit 0d7303c

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
on:
2+
push:
3+
branches:
4+
- main
5+
pull_request:
6+
paths:
7+
- .github/workflows/downstream_unmanaged_dependency_check.yaml
8+
- java-shared-dependencies/**
9+
10+
name: Downstream Unmanaged Dependency Check
11+
jobs:
12+
validate:
13+
runs-on: ubuntu-22.04
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
repo:
18+
- java-bigtable
19+
- java-firestore
20+
- java-logging
21+
steps:
22+
- name: Checkout sdk-platform-java
23+
uses: actions/checkout@v3
24+
with:
25+
path: sdk-platform-java
26+
- name: Checkout the downstream repo
27+
uses: actions/checkout@v4
28+
with:
29+
repository: googleapis/${{ matrix.repo }}
30+
path: ${{ matrix.repo }}
31+
- name: Check the environment
32+
shell: bash
33+
run: |
34+
set -euxo pipefail
35+
pwd
36+
ls -alt
37+
- uses: actions/setup-java@v3
38+
with:
39+
java-version: 11
40+
distribution: temurin
41+
cache: maven
42+
- name: Install the modules of sdk-platform-java
43+
shell: bash
44+
working-directory: sdk-platform-java
45+
run: |
46+
set -euo pipefail
47+
# gapic-generator-java is irrelevant
48+
mvn -q -B -ntp install --projects '!gapic-generator-java' \
49+
-Dcheckstyle.skip -Dfmt.skip -DskipTests -T 1C
50+
- name: Build unmanaged dependency check
51+
shell: bash
52+
working-directory: sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check
53+
run: |
54+
set -euo pipefail
55+
echo "Install Unmanaged Dependency Check in $(pwd)"
56+
mvn clean install -V --batch-mode --no-transfer-progress -DskipTests
57+
- name: Install the modules of the downstream repository
58+
shell: bash
59+
working-directory: ${{ matrix.repo }}
60+
run: |
61+
# No argument to build.sh installs the modules in local Maven repository
62+
.kokoro/build.sh
63+
- name: Run unmanaged dependency check
64+
shell: bash
65+
run: |
66+
set -euo pipefail
67+
set -x
68+
# java-bigtable has "-deps-bom" that declares its dependencies. It's not a good
69+
# BOM to list the artifacts generated by that repository.
70+
bom_dir=$(find ${{ matrix.repo }} -type d -name 'google-*-bom' ! -name '*-deps-bom')
71+
bom_absolute_path=$(realpath "${bom_dir}/pom.xml")
72+
cd sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check
73+
echo "Running Unmanaged Dependency Check against ${bom_absolute_path}"
74+
unmanaged_dependencies=$(mvn exec:java -Dexec.args="../pom.xml ${bom_absolute_path}" -q)
75+
if [[ "${unmanaged_dependencies}" != "[]" ]]; then
76+
echo "With this change, the unmanaged dependencies check installed in ${{ matrix.repo }} will start to"
77+
echo "fail due to ${unmanaged_dependencies}, among the artifacts listed in ${bom_absolute_path}."
78+
exit 1
79+
fi
80+
echo "Unmanaged dependency check passed"

0 commit comments

Comments
 (0)