Skip to content

Commit 00a81ad

Browse files
committed
ktl-812 chore: build configuration for api references customization tests
1 parent 4b9c061 commit 00a81ad

File tree

9 files changed

+152
-1
lines changed

9 files changed

+152
-1
lines changed

.dockerignore

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
.github
22
.idea
33
.next
4-
_assets
54
build
65
node_modules
76
out

.teamcity/tests/TestsProject.kt

+1
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ object TestsProject : Project({
88

99
buildType(tests.buildTypes.E2ETests)
1010
buildType(tests.buildTypes.E2EProductionTest)
11+
buildType(tests.buildTypes.ApiReferencesTemplateTest)
1112
})
1213

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package tests.buildTypes
2+
3+
import jetbrains.buildServer.configs.kotlin.BuildType
4+
import jetbrains.buildServer.configs.kotlin.FailureAction
5+
import jetbrains.buildServer.configs.kotlin.buildFeatures.PullRequests
6+
import jetbrains.buildServer.configs.kotlin.buildFeatures.pullRequests
7+
import jetbrains.buildServer.configs.kotlin.buildSteps.script
8+
import jetbrains.buildServer.configs.kotlin.triggers.vcs
9+
10+
object ApiReferencesTemplateTest: BuildType({
11+
name = "Api References Template Test"
12+
13+
vcs {
14+
root(vcsRoots.KotlinLangOrg)
15+
}
16+
17+
triggers {
18+
vcs {
19+
branchFilter = "+:pull/*"
20+
}
21+
}
22+
23+
steps {
24+
script {
25+
scriptContent = "./scripts/dokka/up.sh"
26+
}
27+
28+
script {
29+
scriptContent = "./scripts/dokka/run.sh"
30+
}
31+
32+
script {
33+
scriptContent = "./scripts/dokka/stop.sh"
34+
}
35+
}
36+
37+
requirements {
38+
exists("docker.server.version")
39+
contains("docker.server.osType", "linux")
40+
}
41+
42+
features {
43+
pullRequests {
44+
vcsRootExtId = "${vcsRoots.KotlinLangOrg.id}"
45+
provider = github {
46+
authType = token {
47+
token = "%github.oauth%"
48+
}
49+
filterAuthorRole = PullRequests.GitHubRoleFilter.MEMBER_OR_COLLABORATOR
50+
}
51+
}
52+
}
53+
54+
dependencies {
55+
dependency(builds.apiReferences.buildTypes.KotlinxCoroutines) {
56+
snapshot {
57+
onDependencyFailure = FailureAction.CANCEL
58+
onDependencyCancel = FailureAction.CANCEL
59+
}
60+
61+
artifacts {
62+
artifactRules = "+:pages.zip!** => libs/kotlinx.coroutines/"
63+
}
64+
}
65+
66+
dependency(builds.apiReferences.buildTypes.KotlinxSerialization) {
67+
snapshot {
68+
onDependencyFailure = FailureAction.CANCEL
69+
onDependencyCancel = FailureAction.CANCEL
70+
}
71+
72+
artifacts {
73+
artifactRules = "+:pages.zip!** => libs/kotlinx.serialization/"
74+
}
75+
}
76+
}
77+
})

dockerfiles/nginx-server/Dockerfile

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
FROM nginx:latest
2+
3+
WORKDIR /var/www
4+
5+
COPY libs /usr/share/nginx/html/api
6+
COPY _assets /usr/share/nginx/html/_assets

dockerfiles/playwright/Dockerfile

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM mcr.microsoft.com/playwright:v1.22.2-focal
2+
3+
WORKDIR /var/www
4+
5+
COPY package.json yarn.lock ./
6+
RUN yarn install --frozen-lockfile
7+
8+
COPY ./scripts ./scripts
9+
COPY playwright.config.js .
10+
COPY ./test ./test
11+
12+
ENTRYPOINT ["tail", "-f"]

scripts/dokka/run-tests.sh

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env bash
2+
set -e
3+
set +x
4+
set -o pipefail
5+
set -u
6+
7+
echo "Waiting for the $BASE_URL response"
8+
9+
./scripts/test/wait-for-endpoint.sh "$BASE_URL"
10+
11+
yarn run test:visual:ci

scripts/dokka/run.sh

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env bash
2+
set -e
3+
set +x
4+
set -o pipefail
5+
set -u
6+
7+
cd "$(pwd)" || exit 1
8+
9+
PLAYWRIGHT_CONTAINER_NAME="kotlin-web-site_playwright"
10+
11+
docker exec -i "$PLAYWRIGHT_CONTAINER_NAME" /bin/bash -c "./scripts/dokka/run-tests.sh"

scripts/dokka/stop.sh

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/bin/bash
2+
set -e
3+
set +x
4+
set -o pipefail
5+
set -u
6+
7+
APP_CONTAINER_NAME="kotlin-web-site_nginx-server"
8+
PLAYWRIGHT_CONTAINER_NAME="kotlin-web-site_playwright"
9+
10+
docker stop "$APP_CONTAINER_NAME"
11+
docker rm "$APP_CONTAINER_NAME"
12+
13+
docker stop "$PLAYWRIGHT_CONTAINER_NAME"
14+
docker rm "$PLAYWRIGHT_CONTAINER_NAME"

scripts/dokka/up.sh

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/usr/bin/env bash
2+
set -e
3+
set +x
4+
set -o pipefail
5+
set -u
6+
7+
cd "$(pwd)" || exit 1
8+
9+
APP_CONTAINER_NAME="kotlin-web-site_nginx-server"
10+
PLAYWRIGHT_CONTAINER_NAME="kotlin-web-site_playwright"
11+
12+
docker build -t "$APP_CONTAINER_NAME" -f ./dockerfiles/nginx-server/Dockerfile .
13+
14+
docker run -d -p 8080:80 --name "$APP_CONTAINER_NAME" "$APP_CONTAINER_NAME"
15+
16+
docker build -t "$PLAYWRIGHT_CONTAINER_NAME" -f ./dockerfiles/playwright/Dockerfile .
17+
18+
APP_CONTAINER_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$APP_CONTAINER_NAME")
19+
20+
docker run -d -e BASE_URL="http://$APP_CONTAINER_IP" -e ipc=host -v $(pwd)/test/snapshots:/var/www/test/snapshots --name "$PLAYWRIGHT_CONTAINER_NAME" "$PLAYWRIGHT_CONTAINER_NAME"

0 commit comments

Comments
 (0)