Skip to content

Commit

Permalink
chore: update workflows
Browse files Browse the repository at this point in the history
  • Loading branch information
bastiandoetsch committed Aug 8, 2023
1 parent e5671bd commit a1916df
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 25 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: 1.8
java-version: 17

- name: Setup Gradle Cache
uses: actions/cache@v2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/detekt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: 1.8
java-version: 17

- name: Setup Gradle Cache
uses: actions/cache@v2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: 1.8
java-version: 17

- name: Setup Gradle Cache
uses: actions/cache@v2
Expand Down
9 changes: 4 additions & 5 deletions src/main/kotlin/snyk/container/KubernetesImageCache.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import com.intellij.openapi.vfs.VirtualFile
import com.intellij.util.RunnableCallable
import com.intellij.util.concurrency.NonUrgentExecutor
import com.jetbrains.rd.util.concurrentMapOf
import snyk.container.YAMLImageExtractor.extractFromFile

@Service
class KubernetesImageCache(val project: Project) {
Expand All @@ -23,7 +22,7 @@ class KubernetesImageCache(val project: Project) {
fun scanProjectForKubernetesFiles() {
val callable = RunnableCallable {
ProjectRootManager.getInstance(project).fileIndex.iterateContent { virtualFile ->
extractFromFile(virtualFile, project)
extractFromFileAndAddToCache(virtualFile)
true
}
}
Expand All @@ -49,13 +48,13 @@ class KubernetesImageCache(val project: Project) {

fun updateCache(files: Set<VirtualFile>) {
files.forEach { file ->
extractFromFile(file)
extractFromFileAndAddToCache(file)
}
}

/** public for Tests only */
fun extractFromFile(file: VirtualFile) {
val extractFromFile = extractFromFile(file, project)
fun extractFromFileAndAddToCache(file: VirtualFile) {
val extractFromFile = YAMLImageExtractor.extractFromFile(file, project)
if (extractFromFile.isNotEmpty()) {
logger.debug("${if (images.contains(file)) "updated" else "added"} $file in cache")
images[file] = extractFromFile
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ class ContainerBulkFileListenerTest : BasePlatformTestCase() {
getSnykCachedResults(project)?.currentContainerResult = fakeContainerResult
toolWindowPanel.getRootContainerIssuesTreeNode().add(ContainerImageTreeNode(issuesForImage, project) {})

getKubernetesImageCache(project)?.extractFromFile(addedPsiFile.virtualFile)
getKubernetesImageCache(project)?.extractFromFileAndAddToCache(addedPsiFile.virtualFile)
}

fun `test ContainerResults should drop cache and mark rescanNeeded when Container supported file CHANGED`() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ class ContainerServiceIntegTest : LightPlatform4TestCase() {
val file = createFile(fileName, podYaml())
val cache = spyk(KubernetesImageCache(project))
cut.setKubernetesImageCache(cache)
cache.extractFromFile(file.virtualFile)
cache.extractFromFileAndAddToCache(file.virtualFile)
return cache
}

Expand Down
30 changes: 15 additions & 15 deletions src/test/kotlin/snyk/container/KubernetesImageCacheIntegTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class KubernetesImageCacheIntegTest : LightPlatform4TestCase() {
@Test
fun `extractFromFile should find yaml files and extract images`() {
val file = createFile(fileName, podYaml()).virtualFile
cut.extractFromFile(file)
cut.extractFromFileAndAddToCache(file)
val images = cut.getKubernetesWorkloadImages()

assertEquals(1, images.size)
Expand Down Expand Up @@ -149,7 +149,7 @@ class KubernetesImageCacheIntegTest : LightPlatform4TestCase() {
fun `should return Kubernetes Workload Files`() {
val file = createFile(fileName, podYaml()).virtualFile

cut.extractFromFile(file)
cut.extractFromFileAndAddToCache(file)
val files: Set<VirtualFile> = cut.getKubernetesWorkloadFilesFromCache()

assertEquals(1, files.size)
Expand All @@ -160,7 +160,7 @@ class KubernetesImageCacheIntegTest : LightPlatform4TestCase() {
fun `should not parse non yaml files`() {
val file = createFile("not-a-yaml-file.zaml", podYaml()).virtualFile

cut.extractFromFile(file)
cut.extractFromFileAndAddToCache(file)
val files: Set<VirtualFile> = cut.getKubernetesWorkloadFilesFromCache()

assertEmpty(files)
Expand All @@ -170,7 +170,7 @@ class KubernetesImageCacheIntegTest : LightPlatform4TestCase() {
fun `should return Kubernetes Workload Image Names`() {
val file = createFile(fileName, podYaml()).virtualFile

cut.extractFromFile(file)
cut.extractFromFileAndAddToCache(file)
val images: Set<String> = cut.getKubernetesWorkloadImageNamesFromCache()

assertEquals(1, images.size)
Expand All @@ -181,7 +181,7 @@ class KubernetesImageCacheIntegTest : LightPlatform4TestCase() {
fun `should return Kubernetes Workload Images with correct line number`() {
val file = createFile(fileName, podYaml()).virtualFile

cut.extractFromFile(file)
cut.extractFromFileAndAddToCache(file)
val images: Set<KubernetesWorkloadImage> = cut.getKubernetesWorkloadImages()

assertEquals(1, images.size)
Expand All @@ -192,7 +192,7 @@ class KubernetesImageCacheIntegTest : LightPlatform4TestCase() {
fun `should remove file from cache when all images from file (cached before) been removed`() {
val psiFile = createFile(fileName, podYaml())
val virtualFile = psiFile.virtualFile
cut.extractFromFile(virtualFile)
cut.extractFromFileAndAddToCache(virtualFile)
val controlImages: Set<KubernetesWorkloadImage> = cut.getKubernetesWorkloadImages()
assertEquals(1, controlImages.size)

Expand All @@ -201,7 +201,7 @@ class KubernetesImageCacheIntegTest : LightPlatform4TestCase() {
?.setText("")
}
FileDocumentManager.getInstance().saveAllDocuments()
cut.extractFromFile(virtualFile)
cut.extractFromFileAndAddToCache(virtualFile)

val images = cut.getKubernetesWorkloadImages()
assertEquals(0, images.size)
Expand All @@ -212,14 +212,14 @@ class KubernetesImageCacheIntegTest : LightPlatform4TestCase() {
private fun executeExtract(yaml: String): Set<String> {
val file = createFile(fileName, yaml).virtualFile

cut.extractFromFile(file)
cut.extractFromFileAndAddToCache(file)
return cut.getKubernetesWorkloadImageNamesFromCache()
}

@Test
fun `extract images from Helm generated yaml with image names inside quotes`() {
val file = createFile(fileName, helmYaml()).virtualFile
cut.extractFromFile(file)
cut.extractFromFileAndAddToCache(file)
val images = cut.getKubernetesWorkloadImages()

assertEquals(1, images.size)
Expand All @@ -229,7 +229,7 @@ class KubernetesImageCacheIntegTest : LightPlatform4TestCase() {
@Test
fun `no images extracted from yaml with invalid image names`() {
val file = createFile(fileName, singleQuoteImageNameBrokenYaml()).virtualFile
cut.extractFromFile(file)
cut.extractFromFileAndAddToCache(file)
val images = cut.getKubernetesWorkloadImages()

assertEquals(0, images.size)
Expand All @@ -239,7 +239,7 @@ class KubernetesImageCacheIntegTest : LightPlatform4TestCase() {
fun `distinct Kubernetes Workload Image Names for calling CLI`() {
val file = createFile(fileName, duplicatedImageNameYaml()).virtualFile

cut.extractFromFile(file)
cut.extractFromFileAndAddToCache(file)
val images: Set<String> = cut.getKubernetesWorkloadImageNamesFromCache()

assertEquals(1, images.size)
Expand All @@ -250,7 +250,7 @@ class KubernetesImageCacheIntegTest : LightPlatform4TestCase() {
fun `image Path followed by comment is extracted`() {
val file = createFile(fileName, imagePathFollowedByCommentYaml()).virtualFile

cut.extractFromFile(file)
cut.extractFromFileAndAddToCache(file)
val images: Set<String> = cut.getKubernetesWorkloadImageNamesFromCache()

assertEquals(1, images.size)
Expand All @@ -261,7 +261,7 @@ class KubernetesImageCacheIntegTest : LightPlatform4TestCase() {
fun `image Path commented is NOT extracted`() {
val file = createFile(fileName, imagePathCommentedYaml()).virtualFile

cut.extractFromFile(file)
cut.extractFromFileAndAddToCache(file)
val images: Set<String> = cut.getKubernetesWorkloadImageNamesFromCache()

assertEquals(0, images.size)
Expand All @@ -271,7 +271,7 @@ class KubernetesImageCacheIntegTest : LightPlatform4TestCase() {
fun `image Path with port and tag is extracted`() {
val file = createFile(fileName, imagePathWithPortAndTagYaml()).virtualFile

cut.extractFromFile(file)
cut.extractFromFileAndAddToCache(file)
val images: Set<String> = cut.getKubernetesWorkloadImageNamesFromCache()

assertEquals(1, images.size)
Expand All @@ -282,7 +282,7 @@ class KubernetesImageCacheIntegTest : LightPlatform4TestCase() {
fun `image Path with digest is extracted`() {
val file = createFile(fileName, imagePathWithDigestYaml()).virtualFile

cut.extractFromFile(file)
cut.extractFromFileAndAddToCache(file)
val images: Set<String> = cut.getKubernetesWorkloadImageNamesFromCache()

assertEquals(1, images.size)
Expand Down

0 comments on commit a1916df

Please sign in to comment.