Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use GitHub Actions Artifacts to store snapshots instead of S3 #2630

Merged
merged 21 commits into from Sep 1, 2022
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
83 changes: 83 additions & 0 deletions .github/workflows/gh-actions-artifacts-snapshots.yml
@@ -0,0 +1,83 @@
name: Build example projects and publish them to GitHub Actions Artifacts

on:
pull_request:
push:
branches:
- master

jobs:
coroutines:
runs-on: ubuntu-latest
if: github.repository == 'Kotlin/dokka'
steps:
- name: Checkout dokka
uses: actions/checkout@v3
with:
submodules: true
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 12
- name: Document coroutines
uses: gradle/gradle-build-action@v2
with:
arguments: :integration-tests:gradle:integrationTest --tests org.jetbrains.dokka.it.gradle.kotlin.CoroutinesGradleIntegrationTest.kt --stacktrace
env:
DOKKA_PATH_TEST_OUTPUT: /home/runner/work/dokka/coroutines
- name: Copy files to GitHub Actions Artifacts
uses: actions/upload-artifact@v3
with:
name: dokka-coroutines
path: /home/runner/work/dokka/coroutines
retention-days: 2

serialization:
runs-on: ubuntu-latest
if: github.repository == 'Kotlin/dokka'
steps:
- name: Checkout dokka
uses: actions/checkout@v3
with:
submodules: true
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 12
- name: Document serialization
uses: gradle/gradle-build-action@v2
with:
arguments: :integration-tests:gradle:integrationTest --tests org.jetbrains.dokka.it.gradle.kotlin.SerializationGradleIntegrationTest --stacktrace
env:
DOKKA_PATH_TEST_OUTPUT: /home/runner/work/dokka/serialization
- name: Copy files to GitHub Actions Artifacts
uses: actions/upload-artifact@v3
with:
name: dokka-serialization
path: /home/runner/work/dokka/serialization
retention-days: 2

biojava:
runs-on: ubuntu-latest
if: github.repository == 'Kotlin/dokka'
steps:
- name: Checkout dokka
uses: actions/checkout@v3
with:
submodules: true
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 12
- name: Document biojava-core
uses: gradle/gradle-build-action@v2
with:
arguments: :integration-tests:maven:integrationTest --tests org.jetbrains.dokka.it.maven.BiojavaIntegrationTest --stacktrace
env:
DOKKA_PATH_TEST_OUTPUT: /home/runner/work/dokka/biojava
- name: Copy files to GitHub Actions Artifacts
uses: actions/upload-artifact@v3
with:
name: dokka-biojava
path: /home/runner/work/dokka/biojava
retention-days: 2
14 changes: 7 additions & 7 deletions .github/workflows/s3-snapshots.yml
Expand Up @@ -7,7 +7,7 @@ env:
bucket-name: 'dokka-snapshots'

jobs:
stdlib:
coroutines:
runs-on: ubuntu-latest
if: github.repository == 'Kotlin/dokka'
steps:
Expand All @@ -19,12 +19,12 @@ jobs:
with:
distribution: 'zulu'
java-version: 12
- name: Document stdlib
- name: Document coroutines
uses: gradle/gradle-build-action@v2
with:
arguments: :integration-tests:gradle:integrationTest --tests org.jetbrains.dokka.it.gradle.kotlin.StdlibGradleIntegrationTest --stacktrace
arguments: :integration-tests:gradle:integrationTest --tests org.jetbrains.dokka.it.gradle.kotlin.CoroutinesGradleIntegrationTest.kt --stacktrace
env:
DOKKA_IT_AWS_PATH: /home/runner/work/dokka/stdlib
DOKKA_PATH_TEST_OUTPUT: /home/runner/work/dokka/coroutines
StefMa marked this conversation as resolved.
Show resolved Hide resolved
- name: Configure AWS credentials for S3 access
uses: aws-actions/configure-aws-credentials@v1
with:
Expand All @@ -34,7 +34,7 @@ jobs:
- name: Copy files to dokka's S3 bucket
run: ./integration-tests/aws_sync.sh s3://${{ env.bucket-name }} stdlib ../stdlib
- name: Print link
run: echo https://dokka-snapshots.s3.eu-central-1.amazonaws.com/${{ env.branch-name }}/stdlib/${GITHUB_SHA::7}/index.html
run: echo https://dokka-snapshots.s3.eu-central-1.amazonaws.com/${{ env.branch-name }}/coroutines/${GITHUB_SHA::7}/index.html

serialization:
runs-on: ubuntu-latest
Expand All @@ -53,7 +53,7 @@ jobs:
with:
arguments: :integration-tests:gradle:integrationTest --tests org.jetbrains.dokka.it.gradle.kotlin.SerializationGradleIntegrationTest --stacktrace
env:
DOKKA_IT_AWS_PATH: /home/runner/work/dokka/serialization
DOKKA_PATH_TEST_OUTPUT: /home/runner/work/dokka/serialization
- name: Configure AWS credentials for S3 access
uses: aws-actions/configure-aws-credentials@v1
with:
Expand Down Expand Up @@ -82,7 +82,7 @@ jobs:
with:
arguments: :integration-tests:maven:integrationTest --tests org.jetbrains.dokka.it.maven.BiojavaIntegrationTest --stacktrace
env:
DOKKA_IT_AWS_PATH: /home/runner/work/dokka/biojava
DOKKA_PATH_TEST_OUTPUT: /home/runner/work/dokka/biojava
- name: Configure AWS credentials for S3 access
uses: aws-actions/configure-aws-credentials@v1
with:
Expand Down
@@ -1,15 +1,15 @@
package org.jetbrains.dokka.it.gradle.kotlin

import org.gradle.testkit.runner.TaskOutcome
import org.jetbrains.dokka.it.S3Project
import org.jetbrains.dokka.it.TestOutputCopier
import org.jetbrains.dokka.it.copyAndApplyGitDiff
import org.jetbrains.dokka.it.gradle.*
import org.junit.runners.Parameterized
import java.io.File
import kotlin.test.*

class CoroutinesGradleIntegrationTest(override val versions: BuildVersions) : AbstractGradleIntegrationTest(),
S3Project {
TestOutputCopier {

companion object {
@get:JvmStatic
Expand Down
@@ -1,15 +1,15 @@
package org.jetbrains.dokka.it.gradle.kotlin

import org.gradle.testkit.runner.TaskOutcome
import org.jetbrains.dokka.it.S3Project
import org.jetbrains.dokka.it.TestOutputCopier
import org.jetbrains.dokka.it.copyAndApplyGitDiff
import org.jetbrains.dokka.it.gradle.*
import org.junit.runners.Parameterized
import java.io.File
import kotlin.test.*

class SerializationGradleIntegrationTest(override val versions: BuildVersions) : AbstractGradleIntegrationTest(),
S3Project {
TestOutputCopier {

companion object {
@get:JvmStatic
Expand Down
@@ -1,16 +1,14 @@
package org.jetbrains.dokka.it.gradle.kotlin

import org.gradle.testkit.runner.TaskOutcome
import org.jetbrains.dokka.it.S3Project
import org.jetbrains.dokka.it.copyAndApplyGitDiff
import org.jetbrains.dokka.it.gradle.AbstractGradleIntegrationTest
import org.jetbrains.dokka.it.gradle.BuildVersions
import org.junit.runners.Parameterized
import java.io.File
import kotlin.test.*

class StdlibGradleIntegrationTest(override val versions: BuildVersions) : AbstractGradleIntegrationTest(),
S3Project {
class StdlibGradleIntegrationTest(override val versions: BuildVersions) : AbstractGradleIntegrationTest() {

companion object {
@get:JvmStatic
Expand All @@ -21,8 +19,6 @@ class StdlibGradleIntegrationTest(override val versions: BuildVersions) : Abstra
)
}

override val projectOutputLocation: File by lazy { File(projectDir, "build/dokka/kotlin-stdlib") }

@BeforeTest
fun prepareProjectFiles() {
val templateProjectDir = File("projects", "stdlib/kotlin-dokka-stdlib")
Expand Down
Expand Up @@ -7,7 +7,7 @@ import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertTrue

class BiojavaIntegrationTest : AbstractIntegrationTest(), S3Project {
class BiojavaIntegrationTest : AbstractIntegrationTest(), TestOutputCopier {

private val currentDokkaVersion: String = checkNotNull(System.getenv("DOKKA_VERSION"))
private val mavenBinaryFile: File = File(checkNotNull(System.getenv("MVN_BINARY_PATH")))
Expand Down
Expand Up @@ -3,14 +3,14 @@ package org.jetbrains.dokka.it
import org.junit.After
import java.io.File

interface S3Project {
interface TestOutputCopier {
val projectOutputLocation: File

@After
fun copyToLocation() {
System.getenv("DOKKA_IT_AWS_PATH")?.also { location ->
System.getenv("DOKKA_PATH_TEST_OUTPUT")?.also { location ->
println("Copying to ${File(location).absolutePath}")
projectOutputLocation.copyRecursively(File(location))
} ?: println("No copy path provided, skipping")
} ?: println("No copy path via env. varbiable 'DOKKA_PATH_TEST_OUTPUT' provided, skipping")
}
}