Skip to content

Commit d571e8d

Browse files
authored
Merge pull request #2 from uptane/publish-github
Use io.github.uptane org
2 parents 0f1a4b3 + a900027 commit d571e8d

File tree

10 files changed

+95
-110
lines changed

10 files changed

+95
-110
lines changed

.github/workflows/ci.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Test & Build
2+
on: [push]
3+
env:
4+
SBT_OPTS: "-Dsbt.color=true -Dscala.color=true"
5+
jobs:
6+
run-tests:
7+
name: Run tests
8+
runs-on: ubuntu-latest
9+
container: uptane/ci:latest
10+
services:
11+
db:
12+
image: mariadb:10.4
13+
env:
14+
MYSQL_ROOT_PASSWORD: "root"
15+
MYSQL_DATABASE: "ota_treehub"
16+
MYSQL_USER: "treehub"
17+
MYSQL_PASSWORD: "treehub"
18+
19+
env:
20+
DB_URL: "jdbc:mariadb://db:3306/ota_treehub"
21+
22+
steps:
23+
- uses: actions/checkout@v2
24+
- name: Coursier cache
25+
uses: coursier/cache-action@v6
26+
- run: ./deploy/ci-db-setup.sh db
27+
- run: sbt ut:test

.github/workflows/release.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Release
2+
on:
3+
push:
4+
branches: [master]
5+
tags: ["*"]
6+
env:
7+
SBT_OPTS: "-Dsbt.color=true -Dscala.color=true"
8+
9+
jobs:
10+
build-images:
11+
name: Build and Push Images
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v2
15+
- name: Log in to Docker Hub
16+
uses: docker/login-action@v1
17+
with:
18+
username: ${{ secrets.DOCKERHUB_USER }}
19+
password: ${{ secrets.DOCKERHUB_TOKEN }}
20+
- uses: olafurpg/setup-scala@v11
21+
with:
22+
java-version: [email protected]
23+
- uses: coursier/cache-action@v6
24+
- run: sbt docker:publishLocal
25+
- run: docker tag advancedtelematic/treehub:$GITHUB_SHA uptane/treehub:$GITHUB_SHA
26+
- run: docker push uptane/treehub:$GITHUB_SHA

build.sbt

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,6 @@ scalaVersion := "2.12.8"
44

55
scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8")
66

7-
resolvers += "ATS Releases" at "https://nexus.ota.here.com/content/repositories/releases"
8-
9-
resolvers += "ATS Snapshots" at "https://nexus.ota.here.com/content/repositories/snapshots"
10-
11-
resolvers += "commons-logging-empty" at "https://version99.qos.ch"
12-
137
def itFilter(name: String): Boolean = name endsWith "IntegrationSpec"
148

159
def unitFilter(name: String): Boolean = !itFilter(name)
@@ -28,10 +22,10 @@ lazy val root = (project in file("."))
2822
.settings(testOptions in IntegrationTest := Seq(Tests.Filter(itFilter)))
2923
.settings(sonarSettings)
3024
.settings(Seq(libraryDependencies ++= {
31-
val akkaV = "2.5.25"
32-
val akkaHttpV = "10.1.10"
25+
val akkaV = "2.6.5"
26+
val akkaHttpV = "10.1.12"
3327
val scalaTestV = "3.0.8"
34-
val libatsV = "0.3.0-109-ge12f057"
28+
val libatsV = "0.4.0-21-g0e8d408"
3529

3630
Seq(
3731
"com.typesafe.akka" %% "akka-actor" % akkaV,
@@ -45,17 +39,16 @@ lazy val root = (project in file("."))
4539
"ch.qos.logback" % "logback-classic" % "1.2.3",
4640
"org.slf4j" % "slf4j-api" % "1.7.25",
4741

48-
"com.advancedtelematic" %% "libats" % libatsV,
49-
"com.advancedtelematic" %% "libats-http" % libatsV,
50-
"com.advancedtelematic" %% "libats-http-tracing" % libatsV,
51-
"com.advancedtelematic" %% "libats-messaging" % libatsV,
52-
"com.advancedtelematic" %% "libats-messaging-datatype" % libatsV,
53-
"com.advancedtelematic" %% "libats-auth" % libatsV,
54-
"com.advancedtelematic" %% "libats-slick" % libatsV,
55-
"com.advancedtelematic" %% "libats-metrics-akka" % libatsV,
56-
"com.advancedtelematic" %% "libats-metrics-prometheus" % libatsV,
57-
"com.advancedtelematic" %% "libats-logging" % libatsV,
58-
"com.advancedtelematic" %% "libats-logging" % libatsV,
42+
"io.github.uptane" %% "libats" % libatsV,
43+
"io.github.uptane" %% "libats-http" % libatsV,
44+
"io.github.uptane" %% "libats-http-tracing" % libatsV,
45+
"io.github.uptane" %% "libats-messaging" % libatsV,
46+
"io.github.uptane" %% "libats-messaging-datatype" % libatsV,
47+
"io.github.uptane" %% "libats-slick" % libatsV,
48+
"io.github.uptane" %% "libats-metrics-akka" % libatsV,
49+
"io.github.uptane" %% "libats-metrics-prometheus" % libatsV,
50+
"io.github.uptane" %% "libats-logging" % libatsV,
51+
"io.github.uptane" %% "libats-logging" % libatsV,
5952

6053
"org.scala-lang.modules" %% "scala-async" % "0.9.6",
6154
"org.mariadb.jdbc" % "mariadb-java-client" % "1.4.4",

deploy/ci-db-setup.sh

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/usr/bin/env bash
2+
3+
set -xeuo pipefail
4+
5+
MYSQL_COMMAND=mysql
6+
HOST=$1
7+
MYSQL=mysql
8+
MYSQLADMIN=mysqladmin
9+
10+
until $MYSQLADMIN ping --silent --protocol=TCP -h $HOST -P 3306 -u root -proot; do
11+
echo waiting for mysql; sleep 1
12+
done
13+
14+
$MYSQL -v -h $HOST -u root -proot <<EOF
15+
CREATE DATABASE IF NOT EXISTS ota_treehub;
16+
17+
CREATE USER IF NOT EXISTS 'treehub' IDENTIFIED BY 'treehub';
18+
19+
GRANT ALL PRIVILEGES ON \`ota\_treehub%\`.* TO 'treehub'@'%';
20+
FLUSH PRIVILEGES;
21+
EOF

src/main/scala/com/advancedtelematic/treehub/Boot.scala

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ package com.advancedtelematic.treehub
22

33
import akka.http.scaladsl.Http
44
import akka.http.scaladsl.server.{Directives, Route}
5-
import com.advancedtelematic.libats.data.DataType.Namespace
6-
import com.advancedtelematic.libats.http.BootApp
5+
import com.advancedtelematic.libats.http.{BootApp, NamespaceDirectives}
76
import com.advancedtelematic.libats.http.LogDirectives._
87
import com.advancedtelematic.libats.http.VersionDirectives._
98
import com.advancedtelematic.libats.http.tracing.Tracing
@@ -15,11 +14,10 @@ import com.advancedtelematic.metrics.{AkkaHttpRequestMetrics, MetricsSupport}
1514
import com.advancedtelematic.treehub.client._
1615
import com.advancedtelematic.treehub.daemon.StaleObjectArchiveActor
1716
import com.advancedtelematic.treehub.delta_store.{LocalDeltaStorage, S3DeltaStorage}
18-
import com.advancedtelematic.treehub.http.{TreeHubRoutes, Http => TreeHubHttp}
17+
import com.advancedtelematic.treehub.http.TreeHubRoutes
1918
import com.advancedtelematic.treehub.object_store.{LocalFsBlobStore, ObjectStore, S3BlobStore}
2019
import com.advancedtelematic.treehub.repo_metrics.UsageMetricsRouter
2120

22-
2321
object Boot extends BootApp with Directives with Settings with VersionInfo
2422
with BootMigrations
2523
with DatabaseConfig
@@ -35,8 +33,7 @@ object Boot extends BootApp with Directives with Settings with VersionInfo
3533

3634
val deviceRegistry = new DeviceRegistryHttpClient(deviceRegistryUri, deviceRegistryMyApi)
3735

38-
val namespaceExtractor = TreeHubHttp.extractNamespace.map(_.namespace.get).map(Namespace.apply)
39-
val deviceNamespace = TreeHubHttp.deviceNamespace(deviceRegistry)
36+
val namespaceExtractor = NamespaceDirectives.defaultNamespaceExtractor
4037

4138
lazy val objectStorage = {
4239
if(useS3) {
@@ -74,7 +71,6 @@ object Boot extends BootApp with Directives with Settings with VersionInfo
7471
tracing.traceRequests { _ =>
7572
new TreeHubRoutes(
7673
namespaceExtractor,
77-
deviceNamespace,
7874
msgPublisher,
7975
objectStore,
8076
deltaStorage,

src/main/scala/com/advancedtelematic/treehub/http/DeviceIdDirectives.scala

Lines changed: 0 additions & 52 deletions
This file was deleted.

src/main/scala/com/advancedtelematic/treehub/http/Http.scala

Lines changed: 0 additions & 21 deletions
This file was deleted.

src/main/scala/com/advancedtelematic/treehub/http/TreeHubRoutes.scala

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import slick.jdbc.MySQLProfile.api._
2020
import scala.concurrent.ExecutionContext
2121

2222
class TreeHubRoutes(namespaceExtractor: Directive1[Namespace],
23-
deviceNamespace: Directive1[Namespace],
2423
messageBus: MessageBusPublisher,
2524
objectStore: ObjectStore,
2625
deltaStorage: StaticDeltaStorage,
@@ -47,10 +46,7 @@ class TreeHubRoutes(namespaceExtractor: Directive1[Namespace],
4746
ErrorHandler.handleErrors {
4847
treehubExceptionHandler {
4948
pathPrefix("api" / "v2") {
50-
allRoutes(namespaceExtractor) ~
51-
pathPrefix("mydevice") {
52-
allRoutes(deviceNamespace)
53-
}
49+
allRoutes(namespaceExtractor)
5450
} ~
5551
pathPrefix("api" / "v3") {
5652
allRoutes(namespaceExtractor)

src/test/scala/com/advancedtelematic/treehub/http/TreehubRoutesSpec.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class TreehubRoutesSpec extends TreeHubSpec with ResourceSpec {
3333
val errorObjectStore = new ObjectStore(errorBlobStore)
3434

3535
override lazy val routes = new TreeHubRoutes(
36-
namespaceExtractor, namespaceExtractor, messageBus, errorObjectStore, deltaStore, fakeUsageUpdate).routes
36+
namespaceExtractor, messageBus, errorObjectStore, deltaStore, fakeUsageUpdate).routes
3737

3838
test("returns 408 when an aws.SdkClientException is thrown") {
3939
val obj = new ClientTObject()

src/test/scala/com/advancedtelematic/util/ResourceSpec.scala

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@ import com.advancedtelematic.treehub.object_store.{LocalFsBlobStore, ObjectStore
1414
import com.advancedtelematic.treehub.repo_metrics.UsageMetricsRouter.{UpdateBandwidth, UpdateStorage}
1515
import com.advancedtelematic.util.FakeUsageUpdate.{CurrentBandwith, CurrentStorage}
1616
import eu.timepit.refined.api.Refined
17-
import java.nio.file.Files
1817

18+
import java.nio.file.Files
1919
import akka.stream.scaladsl.Source
2020
import akka.util.ByteString
2121
import org.scalatest.Suite
2222

2323
import scala.util.Random
2424
import cats.syntax.either._
25-
import com.advancedtelematic.libats.auth.NamespaceDirectives
2625
import com.advancedtelematic.libats.data.DataType.Namespace
26+
import com.advancedtelematic.libats.http.NamespaceDirectives
2727
import com.advancedtelematic.libats.messaging.test.MockMessageBus
2828
import com.advancedtelematic.libats.messaging_datatype.DataType.Commit
2929
import com.advancedtelematic.libats.test.DatabaseSpec
@@ -87,7 +87,7 @@ trait ResourceSpec extends ScalatestRouteTest with DatabaseSpec with Settings {
8787
def apiUri(path: String): String = "/api/v2/" + path
8888
def apiUri(version: Int, path: String): String = s"/api/v$version/" + path
8989

90-
lazy val namespaceExtractor = NamespaceDirectives.defaultNamespaceExtractor.map(_.namespace)
90+
lazy val namespaceExtractor = NamespaceDirectives.defaultNamespaceExtractor
9191

9292
val objectStore = new ObjectStore(new LocalFsBlobStore(Files.createTempDirectory("treehub-obj")))
9393

@@ -98,7 +98,6 @@ trait ResourceSpec extends ScalatestRouteTest with DatabaseSpec with Settings {
9898
lazy val messageBus = new MockMessageBus()
9999

100100
lazy val routes = new TreeHubRoutes(
101-
namespaceExtractor,
102101
namespaceExtractor,
103102
messageBus,
104103
objectStore,

0 commit comments

Comments
 (0)