Skip to content

Commit 758f535

Browse files
authored
Upload binaries to Minio (#2008)
This is a copy of the Github release, now always triggered, that uploads to the `latest` folder on our own s3. This is how we did it previously (year or so back). I've tried to re-use some static credentials from the AWS connection, so I don't need to introduce new credentials.
1 parent ffc7267 commit 758f535

File tree

2 files changed

+125
-0
lines changed

2 files changed

+125
-0
lines changed

.teamcity/Ribasim/Project.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package Ribasim
22

33
import Ribasim.buildTypes.GenerateTestmodels
44
import Ribasim.buildTypes.Ribasim_MakeGitHubRelease
5+
import Ribasim.buildTypes.Ribasim_UploadToMinio
56
import Ribasim.buildTypes.Ribasim_MakeQgisPlugin
67
import Ribasim.vcsRoots.Ribasim
78
import Ribasim_Linux.RibasimLinuxProject
@@ -18,6 +19,7 @@ object Project : Project({
1819
buildType(GenerateTestmodels)
1920
buildType(Ribasim_MakeQgisPlugin)
2021
buildType(Ribasim_MakeGitHubRelease)
22+
buildType(Ribasim_UploadToMinio)
2123

2224
template(GithubCommitStatusIntegration)
2325
template(GithubPullRequestsIntegration)
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
package Ribasim.buildTypes
2+
3+
import Ribasim_Linux.Linux_BuildRibasim
4+
import Ribasim_Linux.Linux_TestRibasimBinaries
5+
import Ribasim_Windows.Windows_BuildRibasim
6+
import Ribasim_Windows.Windows_TestRibasimBinaries
7+
import Templates.LinuxAgent
8+
import jetbrains.buildServer.configs.kotlin.*
9+
import jetbrains.buildServer.configs.kotlin.buildFeatures.provideAwsCredentials
10+
import jetbrains.buildServer.configs.kotlin.buildSteps.script
11+
import jetbrains.buildServer.configs.kotlin.triggers.vcs
12+
13+
object Ribasim_UploadToMinio : BuildType({
14+
templates(LinuxAgent)
15+
name = "Make Nightly Release"
16+
17+
params {
18+
param("env.GITHUB_TOKEN", "%github_deltares-service-account_access_token%")
19+
param("env.AWS_ENDPOINT_URL", "https://s3.deltares.nl")
20+
}
21+
22+
features {
23+
provideAwsCredentials {
24+
awsConnectionId = "AmazonWebServicesAws"
25+
}
26+
}
27+
28+
vcs {
29+
root(Ribasim.vcsRoots.Ribasim)
30+
cleanCheckout = true
31+
}
32+
33+
steps {
34+
script {
35+
name = "Push release to AWS"
36+
id = "RibaPushReleaseAWS"
37+
scriptContent = """
38+
set -euxo pipefail
39+
. /usr/share/Modules/init/bash
40+
module load aws
41+
42+
aws s3 cp ribasim_windows.zip s3://ribasim/teamcity/Ribasim_Ribasim/BuildRibasimCliWindows/latest/ribasim_windows.zip
43+
aws s3 cp ribasim_linux.zip s3://ribasim/teamcity/Ribasim_Ribasim/BuildRibasimCliWindows/latest/ribasim_linux.zip
44+
aws s3 cp ribasim_qgis.zip s3://ribasim/teamcity/Ribasim_Ribasim/BuildRibasimCliWindows/latest/ribasim_qgis.zip
45+
aws s3 cp generated_testmodels.zip s3://ribasim/teamcity/Ribasim_Ribasim/BuildRibasimCliWindows/latest/generated_testmodels.zip
46+
""".trimIndent()
47+
}
48+
}
49+
50+
triggers {
51+
vcs {
52+
id = "riba_main_minio_trigger"
53+
branchFilter = """
54+
+:<default>
55+
""".trimIndent()
56+
}
57+
}
58+
59+
dependencies {
60+
dependency(GenerateTestmodels) {
61+
snapshot {
62+
onDependencyFailure = FailureAction.FAIL_TO_START
63+
}
64+
65+
artifacts {
66+
id = "ARTIFACT_DEPENDENCY_685"
67+
artifactRules = "generated_testmodels.zip"
68+
}
69+
}
70+
dependency(Linux_BuildRibasim) {
71+
snapshot {
72+
onDependencyFailure = FailureAction.FAIL_TO_START
73+
}
74+
75+
artifacts {
76+
id = "ARTIFACT_DEPENDENCY_684"
77+
artifactRules = "ribasim_linux.zip"
78+
}
79+
}
80+
snapshot(Linux_TestRibasimBinaries) {
81+
onDependencyFailure = FailureAction.FAIL_TO_START
82+
}
83+
dependency(Ribasim_MakeQgisPlugin) {
84+
snapshot {
85+
onDependencyFailure = FailureAction.FAIL_TO_START
86+
}
87+
88+
artifacts {
89+
id = "ARTIFACT_DEPENDENCY_603"
90+
artifactRules = "ribasim_qgis.zip"
91+
}
92+
}
93+
dependency(AbsoluteId("SigningAndCertificates_Ribasim_SigningRibasimRelease")) {
94+
snapshot {
95+
onDependencyFailure = FailureAction.FAIL_TO_START
96+
}
97+
98+
artifacts {
99+
id = "ARTIFACT_DEPENDENCY_157"
100+
artifactRules = "ribasim_windows.zip"
101+
}
102+
}
103+
snapshot(Windows_TestRibasimBinaries) {
104+
onDependencyFailure = FailureAction.FAIL_TO_START
105+
}
106+
}
107+
108+
cleanup {
109+
keepRule {
110+
id = "KEEP_RULE_10"
111+
keepAtLeast = allBuilds()
112+
applyToBuilds {
113+
withStatus = successful()
114+
}
115+
dataToKeep = everything()
116+
applyPerEachBranch = true
117+
preserveArtifactsDependencies = true
118+
}
119+
baseRule {
120+
option("disableCleanupPolicies", true)
121+
}
122+
}
123+
})

0 commit comments

Comments
 (0)