Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/actions/mock-dependencies/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ runs:
cdnet/clt.zip
cdnet/clt.sha256.bin
cdnet/clt.path.txt
internal/tooling/intellij-report-converter.jar
clang/clang-tidy-linux-amd64.tar.gz
clang/clang-tidy-linux-amd64.tar.gz.sha256.bin
clang/clang-tidy-linux-arm64.tar.gz
Expand Down
5 changes: 0 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -152,11 +152,6 @@ jobs:
with:
cache-dependency-path: "**/*.sum"
go-version-file: go.mod
- name: Mock closed-source dependencies
shell: bash
run: >-
touch
internal/tooling/intellij-report-converter.jar
- name: Download CLI dependencies
run: go generate -v ./internal/tooling/...
- name: Build CLI only
Expand Down
12 changes: 0 additions & 12 deletions .teamcity/cli/Artifacts.kt
Original file line number Diff line number Diff line change
Expand Up @@ -69,18 +69,6 @@ fun BuildSteps.denestFileArtifacts(searchStartDir: String = "%teamcity.build.che

internal const val THIRD_PARTY_LICENSES_RULE = "**/*third-party-libraries.json=>licenses/"

fun Dependencies.getQodanaToolingArtifacts(tool: String = "cli") {
artifacts(AbsoluteId("StaticAnalysis_Build_UiAndConverter")) {
buildRule = tag("readyForTest", "+:*")
artifactRules = """
intellij-report-converter.jar=>internal/tooling/intellij-report-converter.jar$DENEST_SUFFIX/
""".trimIndent()
if (tool != "cli") {
artifactRules += "\n\n$THIRD_PARTY_LICENSES_RULE"
}
}
}

fun Dependencies.getClangArtifacts() {
artifacts(AbsoluteId(clangId)) {
buildRule = lastSuccessful()
Expand Down
55 changes: 0 additions & 55 deletions .teamcity/cli/GoReleaser.kt
Original file line number Diff line number Diff line change
Expand Up @@ -107,33 +107,6 @@ class GoReleaser(
PREFIX="."
fi

# dirty workarounds until we move to github or support 253
if [ -d "${'$'}PREFIX/internal/tooling" ] && ls ${'$'}PREFIX/internal/tooling/*.go >/dev/null 2>&1; then
go generate -v ${'$'}PREFIX/internal/tooling/...
elif [ -d "${'$'}PREFIX/tooling" ]; then
# Copy JARs from internal/tooling to tooling (artifacts are downloaded to internal/tooling)
for jar in intellij-report-converter.jar; do
if [ -f "${'$'}PREFIX/internal/tooling/${'$'}jar" ]; then
cp -v "${'$'}PREFIX/internal/tooling/${'$'}jar" "${'$'}PREFIX/tooling/"
else
echo "ERROR: ${'$'}PREFIX/internal/tooling/${'$'}jar not found" >&2
ls -la ${'$'}PREFIX/internal/tooling/ >&2 || true
fi
done
(cd ${'$'}PREFIX/tooling && go generate -v ./...)
elif [ -d "../tooling" ]; then
# Branch 253 structure: tooling/ at root, running from cli/
for jar in intellij-report-converter.jar; do
if [ -f "../internal/tooling/${'$'}jar" ]; then
cp -v "../internal/tooling/${'$'}jar" "../tooling/"
else
echo "ERROR: ../internal/tooling/${'$'}jar not found" >&2
ls -la ../internal/tooling/ >&2 || true
fi
done
(cd ../tooling && go generate -v ./...)
fi

ARCH=${'$'}(uname -m)
case ${'$'}ARCH in
x86_64) ARCH_SUFFIX="amd64" ;;
Expand Down Expand Up @@ -164,33 +137,6 @@ class GoReleaser(
PREFIX="."
fi

# dirty workarounds until we move to github or support 253
if [ -d "${'$'}PREFIX/internal/tooling" ] && ls ${'$'}PREFIX/internal/tooling/*.go >/dev/null 2>&1; then
go generate -v ${'$'}PREFIX/internal/tooling/...
elif [ -d "${'$'}PREFIX/tooling" ]; then
# Copy JARs from internal/tooling to tooling (artifacts are downloaded to internal/tooling)
for jar in intellij-report-converter.jar; do
if [ -f "${'$'}PREFIX/internal/tooling/${'$'}jar" ]; then
cp -v "${'$'}PREFIX/internal/tooling/${'$'}jar" "${'$'}PREFIX/tooling/"
else
echo "ERROR: ${'$'}PREFIX/internal/tooling/${'$'}jar not found" >&2
ls -la ${'$'}PREFIX/internal/tooling/ >&2 || true
fi
done
(cd ${'$'}PREFIX/tooling && go generate -v ./...)
elif [ -d "../tooling" ]; then
# Branch 253 structure: tooling/ at root, running from cli/
for jar in intellij-report-converter.jar; do
if [ -f "../internal/tooling/${'$'}jar" ]; then
cp -v "../internal/tooling/${'$'}jar" "../tooling/"
else
echo "ERROR: ../internal/tooling/${'$'}jar not found" >&2
ls -la ../internal/tooling/ >&2 || true
fi
done
(cd ../tooling && go generate -v ./...)
fi

export GORELEASER_CURRENT_TAG=${'$'}(git describe --tags ${'$'}(git rev-list --tags --max-count=1))
goreleaser release --config ${'$'}GORELEASER_CONFIG --clean ${arguments.joinToString(" ")}
""".trimIndent()
Expand Down Expand Up @@ -287,7 +233,6 @@ class GoReleaser(
}
}
dependencies {
getQodanaToolingArtifacts(tool = wd)
when (wd) {
"clang" -> getClangArtifacts()
"cdnet" -> getDotNetArtifacts(branch, tool = wd)
Expand Down
17 changes: 7 additions & 10 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,23 +50,20 @@ go generate ./internal/tooling/...

**For external contributors:**

1. Create empty stubs for closed-source JARs (tests using them will be skipped):
```sh
touch internal/tooling/intellij-report-converter.jar
```
2. Download public JARs via go generate:
```sh
go generate ./internal/tooling/...
```
Download public JARs via go generate:

```sh
go generate ./internal/tooling/...
```

`cd` into the `cli` directory and run for debug:

```sh
go run main.go
```

Build a binary with

Build a binary with:
```sh
go build -o qd main.go
```
Expand Down
1 change: 1 addition & 0 deletions internal/tooling/converter.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,6 @@ package tooling

import _ "embed"

//go:generate go run scripts/download-resource.go intellij-report-converter.jar
//go:embed intellij-report-converter.jar
var Converter []byte
5 changes: 5 additions & 0 deletions internal/tooling/resources.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,10 @@
"url": "https://packages.jetbrains.team/maven/p/ij/intellij-dependencies/org/jetbrains/qodana/qodana-fuser/$version/qodana-fuser-$version.jar",
"version": "1.0.26",
"sha256": "bb1c9d85d4a095c0b3329f37ffdbd400e12823062a2db4b79129ee2a157c618a"
},
"intellij-report-converter.jar": {
"url": "https://packages.jetbrains.team/maven/p/ij/intellij-dependencies/org/jetbrains/qodana/intellij-report-converter/$version/intellij-report-converter-$version.jar",
"version": "0.11.76",
"sha256": "702ac7673cc4c2884cc81a5f203c16fb4d22b10b6ab515af101c62d2713902ab"
}
}
60 changes: 48 additions & 12 deletions scripts/download-deps.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,21 +26,52 @@ type artifact struct {
destPath string
}

var toolingArtifacts = []artifact{
{"StaticAnalysis_Build_UiAndConverter", "intellij-report-converter.jar", "", "internal/tooling/intellij-report-converter.jar"},
}

var clangArtifacts = []artifact{
{"ijplatform_master_CIDR_ExternalTools_VanillaClangTidyAll", `clang-tidy-[^"]*-linux-x64\.tar\.gz`, "", "clang/clang-tidy-linux-amd64.tar.gz"},
{"ijplatform_master_CIDR_ExternalTools_VanillaClangTidyAll", `clang-tidy-[^"]*-linux-aarch64\.tar\.gz`, "", "clang/clang-tidy-linux-arm64.tar.gz"},
{"ijplatform_master_CIDR_ExternalTools_VanillaClangTidyAll", `clang-tidy-[^"]*-mac-x64\.tar\.gz`, "", "clang/clang-tidy-darwin-amd64.tar.gz"},
{"ijplatform_master_CIDR_ExternalTools_VanillaClangTidyAll", `clang-tidy-[^"]*-mac-aarch64\.tar\.gz`, "", "clang/clang-tidy-darwin-arm64.tar.gz"},
{"ijplatform_master_CIDR_ExternalTools_VanillaClangTidyAll", `clang-tidy-[^"]*-win-x64\.zip`, "", "clang/clang-tidy-windows-amd64.zip"},
{"ijplatform_master_CIDR_ExternalTools_VanillaClangTidyAll", `clang-tidy-[^"]*-win-aarch64\.zip`, "", "clang/clang-tidy-windows-arm64.zip"},
{
"ijplatform_master_CIDR_ExternalTools_VanillaClangTidyAll",
`clang-tidy-[^"]*-linux-x64\.tar\.gz`,
"",
"clang/clang-tidy-linux-amd64.tar.gz",
},
{
"ijplatform_master_CIDR_ExternalTools_VanillaClangTidyAll",
`clang-tidy-[^"]*-linux-aarch64\.tar\.gz`,
"",
"clang/clang-tidy-linux-arm64.tar.gz",
},
{
"ijplatform_master_CIDR_ExternalTools_VanillaClangTidyAll",
`clang-tidy-[^"]*-mac-x64\.tar\.gz`,
"",
"clang/clang-tidy-darwin-amd64.tar.gz",
},
{
"ijplatform_master_CIDR_ExternalTools_VanillaClangTidyAll",
`clang-tidy-[^"]*-mac-aarch64\.tar\.gz`,
"",
"clang/clang-tidy-darwin-arm64.tar.gz",
},
{
"ijplatform_master_CIDR_ExternalTools_VanillaClangTidyAll",
`clang-tidy-[^"]*-win-x64\.zip`,
"",
"clang/clang-tidy-windows-amd64.zip",
},
{
"ijplatform_master_CIDR_ExternalTools_VanillaClangTidyAll",
`clang-tidy-[^"]*-win-aarch64\.zip`,
"",
"clang/clang-tidy-windows-arm64.zip",
},
}

var cdnetArtifacts = []artifact{
{"ijplatform_master_Net_PostCompile_TriggerAllInstallers", `JetBrains\.ReSharper\.GlobalTools\.[^"]*\.nupkg`, "Artifacts.InstallersPortablesZips", "cdnet/clt.zip"},
{
"ijplatform_master_Net_PostCompile_TriggerAllInstallers",
`JetBrains\.ReSharper\.GlobalTools\.[^"]*\.nupkg`,
"Artifacts.InstallersPortablesZips",
"cdnet/clt.zip",
},
}

func main() {
Expand Down Expand Up @@ -97,7 +128,12 @@ func download(a artifact, dest string) error {
if a.subPath != "" {
urlPath = a.subPath + "/" + artifactName
}
url := fmt.Sprintf("%s/app/rest/builds/buildType:%s,status:SUCCESS,count:1/artifacts/content/%s", buildserver, a.buildTypeID, urlPath)
url := fmt.Sprintf(
"%s/app/rest/builds/buildType:%s,status:SUCCESS,count:1/artifacts/content/%s",
buildserver,
a.buildTypeID,
urlPath,
)

log.Printf("Downloading %s", a.destPath)
if err := os.MkdirAll(filepath.Dir(dest), 0755); err != nil {
Expand Down
Loading