Skip to content

Commit 406c3da

Browse files
authored
QD-13293 Use public repositories of baseline-cli and qodana-fuser (#816)
* Use public repositories of baseline-cli and qodana-fuser * Download artifacts during linting
1 parent 08666cd commit 406c3da

File tree

9 files changed

+35
-44
lines changed

9 files changed

+35
-44
lines changed

.github/actions/mock-dependencies/action.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,7 @@ runs:
1414
cdnet/clt.zip
1515
cdnet/clt.sha256.bin
1616
cdnet/clt.path.txt
17-
internal/tooling/baseline-cli.jar
1817
internal/tooling/intellij-report-converter.jar
19-
internal/tooling/qodana-fuser.jar
20-
internal/tooling/config-loader-cli.jar
21-
internal/tooling/publisher-cli.jar
2218
clang/clang-tidy-linux-amd64.tar.gz
2319
clang/clang-tidy-linux-amd64.tar.gz.sha256.bin
2420
clang/clang-tidy-linux-arm64.tar.gz

.github/workflows/ci.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ jobs:
5656
with:
5757
cache-dependency-path: "**/*.sum"
5858
go-version-file: go.mod
59+
- name: Download CLI dependencies
60+
# Golangci-lint, in their infinite wisdom, do not allow you to disable typecheck.
61+
# Because of this, the project NEEDS to be compileable to be linted.
62+
# https://golangci-lint.run/docs/welcome/faq/#why-do-you-have-typecheck-errors
63+
run: go generate -v ./internal/tooling/...
5964
- name: golangci-lint
6065
uses: golangci/golangci-lint-action@v9
6166
with:
@@ -151,9 +156,7 @@ jobs:
151156
shell: bash
152157
run: >-
153158
touch
154-
internal/tooling/baseline-cli.jar
155159
internal/tooling/intellij-report-converter.jar
156-
internal/tooling/qodana-fuser.jar
157160
- name: Download CLI dependencies
158161
run: go generate -v ./internal/tooling/...
159162
- name: Build CLI only

.teamcity/cli/Artifacts.kt

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -33,34 +33,34 @@ fun BuildSteps.denestFileArtifacts(searchStartDir: String = "%teamcity.build.che
3333
scriptContent = """
3434
#!/usr/bin/env bash
3535
set -euo pipefail
36-
36+
3737
denest() {
3838
directory="$1"
39-
39+
4040
list_artifacts() {
4141
find "${'$'}directory" -mindepth 1 -maxdepth 1 "$@"
4242
}
43-
43+
4444
n_files=$(list_artifacts -printf '.' | wc -c)
4545
if [ ${'$'}{n_files} -eq 0 ]; then
4646
echo "No files found in '$(pwd)/${'$'}directory'. This is likely an error in BuildSteps.denestFileArtifacts." >&2
4747
exit 2
4848
fi
49-
49+
5050
if [ ${'$'}{n_files} -ne 1 ]; then
5151
echo "Found ${'$'}{n_files} files matching '$(pwd)/${'$'}directory':" >&2
5252
list_artifacts >$2
5353
echo "IJBuildType.loadSingleFileArtifact pattern should match a single file." >&2
5454
exit 1
5555
fi
56-
56+
5757
targetPath="$(dirname "${'$'}directory")/$(basename "${'$'}directory" "$denestSuffix")"
5858
list_artifacts -exec mv -vT {} "${'$'}targetPath" \;
5959
rm -r "${'$'}directory"
6060
}
61-
61+
6262
# see also: https://stackoverflow.com/q/9612090
63-
find . -name "*$denestSuffix" -print0 | while IFS= read -r -d '' directory; do
63+
find . -name "*$denestSuffix" -print0 | while IFS= read -r -d '' directory; do
6464
denest "${'$'}directory"
6565
done
6666
""".trimIndent()
@@ -70,24 +70,6 @@ fun BuildSteps.denestFileArtifacts(searchStartDir: String = "%teamcity.build.che
7070
internal const val THIRD_PARTY_LICENSES_RULE = "**/*third-party-libraries.json=>licenses/"
7171

7272
fun Dependencies.getQodanaToolingArtifacts(tool: String = "cli") {
73-
artifacts(AbsoluteId("StaticAnalysis_Base_Build_baseline_cli")) {
74-
buildRule = lastSuccessful()
75-
artifactRules = """
76-
baseline-cli-*.jar => internal/tooling/baseline-cli.jar$DENEST_SUFFIX/
77-
""".trimIndent()
78-
if (tool != "cli") {
79-
artifactRules += "\n\n$THIRD_PARTY_LICENSES_RULE"
80-
}
81-
}
82-
artifacts(AbsoluteId("StaticAnalysis_Base_Build_fuser")) {
83-
buildRule = lastSuccessful()
84-
artifactRules = """
85-
qodana-fuser-*.jar => internal/tooling/qodana-fuser.jar$DENEST_SUFFIX/
86-
""".trimIndent()
87-
if (tool != "cli") {
88-
artifactRules += "\n\n$THIRD_PARTY_LICENSES_RULE"
89-
}
90-
}
9173
artifacts(AbsoluteId("StaticAnalysis_Build_UiAndConverter")) {
9274
buildRule = tag("readyForTest", "+:*")
9375
artifactRules = """

.teamcity/cli/GoReleaser.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,13 @@ class GoReleaser(
106106
GORELEASER_CONFIG=".goreleaser.yaml"
107107
PREFIX="."
108108
fi
109-
109+
110110
# dirty workarounds until we move to github or support 253
111111
if [ -d "${'$'}PREFIX/internal/tooling" ] && ls ${'$'}PREFIX/internal/tooling/*.go >/dev/null 2>&1; then
112112
go generate -v ${'$'}PREFIX/internal/tooling/...
113113
elif [ -d "${'$'}PREFIX/tooling" ]; then
114114
# Copy JARs from internal/tooling to tooling (artifacts are downloaded to internal/tooling)
115-
for jar in baseline-cli.jar qodana-fuser.jar intellij-report-converter.jar; do
115+
for jar in intellij-report-converter.jar; do
116116
if [ -f "${'$'}PREFIX/internal/tooling/${'$'}jar" ]; then
117117
cp -v "${'$'}PREFIX/internal/tooling/${'$'}jar" "${'$'}PREFIX/tooling/"
118118
else
@@ -123,7 +123,7 @@ class GoReleaser(
123123
(cd ${'$'}PREFIX/tooling && go generate -v ./...)
124124
elif [ -d "../tooling" ]; then
125125
# Branch 253 structure: tooling/ at root, running from cli/
126-
for jar in baseline-cli.jar qodana-fuser.jar intellij-report-converter.jar; do
126+
for jar in intellij-report-converter.jar; do
127127
if [ -f "../internal/tooling/${'$'}jar" ]; then
128128
cp -v "../internal/tooling/${'$'}jar" "../tooling/"
129129
else
@@ -133,7 +133,7 @@ class GoReleaser(
133133
done
134134
(cd ../tooling && go generate -v ./...)
135135
fi
136-
136+
137137
ARCH=${'$'}(uname -m)
138138
case ${'$'}ARCH in
139139
x86_64) ARCH_SUFFIX="amd64" ;;
@@ -149,9 +149,9 @@ class GoReleaser(
149149
(cd /tmp && sha256sum -c ${'$'}CODESIGN_BIN.sha256)
150150
mv /tmp/${'$'}CODESIGN_BIN /usr/local/bin/codesign
151151
chmod +x /usr/local/bin/codesign
152-
152+
153153
export GORELEASER_CURRENT_TAG=${'$'}(git describe --tags ${'$'}(git rev-list --tags --max-count=1))
154-
goreleaser release --config ${'$'}GORELEASER_CONFIG --clean ${arguments.joinToString(" ")}
154+
goreleaser release --config ${'$'}GORELEASER_CONFIG --clean ${arguments.joinToString(" ")}
155155
""".trimIndent()
156156
} else {
157157
"""
@@ -163,13 +163,13 @@ class GoReleaser(
163163
GORELEASER_CONFIG=".goreleaser.yaml"
164164
PREFIX="."
165165
fi
166-
166+
167167
# dirty workarounds until we move to github or support 253
168168
if [ -d "${'$'}PREFIX/internal/tooling" ] && ls ${'$'}PREFIX/internal/tooling/*.go >/dev/null 2>&1; then
169169
go generate -v ${'$'}PREFIX/internal/tooling/...
170170
elif [ -d "${'$'}PREFIX/tooling" ]; then
171171
# Copy JARs from internal/tooling to tooling (artifacts are downloaded to internal/tooling)
172-
for jar in baseline-cli.jar qodana-fuser.jar intellij-report-converter.jar; do
172+
for jar in intellij-report-converter.jar; do
173173
if [ -f "${'$'}PREFIX/internal/tooling/${'$'}jar" ]; then
174174
cp -v "${'$'}PREFIX/internal/tooling/${'$'}jar" "${'$'}PREFIX/tooling/"
175175
else
@@ -180,7 +180,7 @@ class GoReleaser(
180180
(cd ${'$'}PREFIX/tooling && go generate -v ./...)
181181
elif [ -d "../tooling" ]; then
182182
# Branch 253 structure: tooling/ at root, running from cli/
183-
for jar in baseline-cli.jar qodana-fuser.jar intellij-report-converter.jar; do
183+
for jar in intellij-report-converter.jar; do
184184
if [ -f "../internal/tooling/${'$'}jar" ]; then
185185
cp -v "../internal/tooling/${'$'}jar" "../tooling/"
186186
else
@@ -190,7 +190,7 @@ class GoReleaser(
190190
done
191191
(cd ../tooling && go generate -v ./...)
192192
fi
193-
193+
194194
export GORELEASER_CURRENT_TAG=${'$'}(git describe --tags ${'$'}(git rev-list --tags --max-count=1))
195195
goreleaser release --config ${'$'}GORELEASER_CONFIG --clean ${arguments.joinToString(" ")}
196196
""".trimIndent()

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ go generate ./internal/tooling/...
5252

5353
1. Create empty stubs for closed-source JARs (tests using them will be skipped):
5454
```sh
55-
touch internal/tooling/baseline-cli.jar internal/tooling/intellij-report-converter.jar internal/tooling/qodana-fuser.jar
55+
touch internal/tooling/intellij-report-converter.jar
5656
```
5757
2. Download public JARs via go generate:
5858
```sh

internal/tooling/baseline.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,6 @@ package tooling
1818

1919
import _ "embed"
2020

21+
//go:generate go run scripts/download-resource.go baseline-cli.jar
2122
//go:embed baseline-cli.jar
2223
var BaselineCli []byte

internal/tooling/fus.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package tooling
1818

1919
import _ "embed"
2020

21+
//go:generate go run scripts/download-resource.go qodana-fuser.jar
2122
//go:embed qodana-fuser.jar
2223
var Fuser []byte
2324

internal/tooling/resources.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,15 @@
88
"url": "https://packages.jetbrains.team/maven/p/ij/intellij-dependencies/org/jetbrains/qodana/publisher-cli/$version/publisher-cli-$version.jar",
99
"version": "3.0.11",
1010
"sha256": "b95f2168d4dcd2ded275aaee943aafc408ffb3d99b4e38b0f6a322e419a8af8f"
11+
},
12+
"baseline-cli.jar": {
13+
"url": "https://packages.jetbrains.team/maven/p/ij/intellij-dependencies/com/jetbrains/qodana/baseline-cli/$version/baseline-cli-$version.jar",
14+
"version": "1.0.4",
15+
"sha256": "57066f56c2c2356e127c6d621f849fd8daf8b101a1219c368d5fb70b9e7299e7"
16+
},
17+
"qodana-fuser.jar": {
18+
"url": "https://packages.jetbrains.team/maven/p/ij/intellij-dependencies/org/jetbrains/qodana/qodana-fuser/$version/qodana-fuser-$version.jar",
19+
"version": "1.0.26",
20+
"sha256": "bb1c9d85d4a095c0b3329f37ffdbd400e12823062a2db4b79129ee2a157c618a"
1121
}
1222
}

scripts/download-deps.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ type artifact struct {
2727
}
2828

2929
var toolingArtifacts = []artifact{
30-
{"StaticAnalysis_Base_Build_baseline_cli", `baseline-cli-[^"]*\.jar`, "", "internal/tooling/baseline-cli.jar"},
31-
{"StaticAnalysis_Base_Build_fuser", `qodana-fuser-[^"]*\.jar`, "", "internal/tooling/qodana-fuser.jar"},
3230
{"StaticAnalysis_Build_UiAndConverter", "intellij-report-converter.jar", "", "internal/tooling/intellij-report-converter.jar"},
3331
}
3432

0 commit comments

Comments
 (0)