Skip to content

Commit

Permalink
Use GitHub Actions Artifacts to store snapshots instead of S3 (#2630)
Browse files Browse the repository at this point in the history
* Use GitHub Actions Artifacts for snapshots

* Delete s3-cleanup.yml

* Fix trigger event

* Fix path

* Fix path again

* Maybe this path is better

* Restore env variable to save output to a known place

* Add retention days

* Replace stdlib with coroutines

* Replace S3Project with TestOutputCopier

* Restore S3 upload

* Change job name

* Fix imports

* Add TestOutputCopier to SdtlibIntegrationTest

* Save stdlib on S3 again

* Rename env variable

* Increase rentention-days

* Remove .kt as filter for test

* Fix skiping copying message

* Update Gradle and Kotlin version
  • Loading branch information
StefMa committed Sep 1, 2022
1 parent 92e3d56 commit 7aae28c
Show file tree
Hide file tree
Showing 7 changed files with 127 additions and 15 deletions.
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")
}
}

0 comments on commit 7aae28c

Please sign in to comment.