-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbootstrap.sh
More file actions
executable file
·66 lines (48 loc) · 2.17 KB
/
Copy pathbootstrap.sh
File metadata and controls
executable file
·66 lines (48 loc) · 2.17 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
#!/bin/bash
# https://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories
set -xe
[ -z "`git config user.email`" ] && git config --global user.email "${USERNAME:-script}@google.com"
[ -z "`git config user.name`" ] && git config --global user.name "${USERNAME:-script}"
rm -rf monorepo
mkdir monorepo
cp bootstrap.sh monorepo
cp repos.txt monorepo
cd monorepo
git clone https://github.com/newren/git-filter-repo.git
export PATH=$PATH:`pwd`/git-filter-repo
mkdir google-cloud-java
cd google-cloud-java
git init -b main
cat ../../repos.txt | while read service
do
cd ..
echo " <module>${service}</module>" >> repo-modules.txt
git clone https://github.com/googleapis/${service}.git
cd ${service}
git filter-repo --to-subdirectory-filter ${service}
cd ../google-cloud-java
git remote add ${service} ../${service}
git fetch ${service} #--tags
EDITOR=true git merge --allow-unrelated-histories ${service}/main
git remote remove ${service}
rm -rf ../${service}
done
cd ..
# insert processed modules into aggregator pom.xml
awk -v MODULES="`awk -v ORS='\\\\n' '1' repo-modules.txt`" '1;/<modules>/{print MODULES}' ../parent.pom.xml > google-cloud-java/pom.xml
cd google-cloud-java
git add pom.xml
git commit -am 'feat: create aggregator pom'
# generate coverage report
mkdir CoverageAggregator
cp ../../coverage.pom.xml CoverageAggregator/pom.xml
# create aggregator project for jacoco
mvn compile -Dexec.executable='echo' \
-Dexec.args='<dependency><groupId>${project.groupId}</groupId><artifactId>${project.artifactId}</artifactId><version>${project.version}</version></dependency>' \
exec:exec -q -B | grep -v 'CoverageAggregator\|bom\|parent\|proto\-\|grpc-\|google\-cloud\-java' >> ../coverage-modules.txt
# insert processed modules into coverage aggregator pom.xml
awk -v MODULES="`awk -v ORS='\\\\n' '1' ../coverage-modules.txt`" '1;/<dependencies>/{print MODULES}' ../../coverage.pom.xml > CoverageAggregator/pom.xml
# add CoverageAggregator to root pom
awk -v MODULE=' <module>CoverageAggregator</module>' '/<\/modules>/{print MODULE};1' pom.xml > pom.xml.tmp && mv pom.xml.tmp pom.xml
git add --all
git commit -am 'feat: create CoverageAggregator module'