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 all 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 --stacktrace
env:
DOKKA_TEST_OUTPUT_PATH: /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: 7

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_TEST_OUTPUT_PATH: /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: 7

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_TEST_OUTPUT_PATH: /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: 7
35 changes: 32 additions & 3 deletions .github/workflows/s3-snapshots.yml
Expand Up @@ -24,7 +24,7 @@ jobs:
with:
arguments: :integration-tests:gradle:integrationTest --tests org.jetbrains.dokka.it.gradle.kotlin.StdlibGradleIntegrationTest --stacktrace
env:
DOKKA_IT_AWS_PATH: /home/runner/work/dokka/stdlib
DOKKA_TEST_OUTPUT_PATH: /home/runner/work/dokka/stdlib
- name: Configure AWS credentials for S3 access
uses: aws-actions/configure-aws-credentials@v1
with:
Expand All @@ -36,6 +36,35 @@ jobs:
- name: Print link
run: echo https://dokka-snapshots.s3.eu-central-1.amazonaws.com/${{ env.branch-name }}/stdlib/${GITHUB_SHA::7}/index.html

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 --stacktrace
env:
DOKKA_TEST_OUTPUT_PATH: /home/runner/work/dokka/coroutines
- name: Configure AWS credentials for S3 access
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-central-1
- name: Copy files to dokka's S3 bucket
run: ./integration-tests/aws_sync.sh s3://${{ env.bucket-name }} coroutines ../coroutines
- name: Print link
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
if: github.repository == 'Kotlin/dokka'
Expand All @@ -53,7 +82,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_TEST_OUTPUT_PATH: /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 +111,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_TEST_OUTPUT_PATH: /home/runner/work/dokka/biojava
- name: Configure AWS credentials for S3 access
uses: aws-actions/configure-aws-credentials@v1
with:
Expand Down
@@ -1,22 +1,22 @@
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
@get:Parameterized.Parameters(name = "{0}")
val versions = BuildVersions.permutations(
gradleVersions = listOf("6.8.3"),
kotlinVersions = listOf("1.6.0")
gradleVersions = listOf("6.9.1"),
kotlinVersions = listOf("1.6.10")
)
}

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,7 +1,7 @@
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.AbstractGradleIntegrationTest
import org.jetbrains.dokka.it.gradle.BuildVersions
Expand All @@ -10,7 +10,7 @@ import java.io.File
import kotlin.test.*

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

companion object {
@get:JvmStatic
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_TEST_OUTPUT_PATH")?.also { location ->
println("Copying to ${File(location).absolutePath}")
projectOutputLocation.copyRecursively(File(location))
} ?: println("No copy path provided, skipping")
} ?: println("No path via env. varbiable 'DOKKA_TEST_OUTPUT_PATH' provided, skipping copying")
}
}