mirror of
https://github.com/TeamPiped/Piped-Backend.git
synced 2025-01-06 01:20:28 +05:30
Add route to display version information. (#195)
* Add version information route. * Use build action for tests. * Add version test to script. * Add testing directory to dockerignore. * Don't unnecessarily set permission for gradle wrapper script.
This commit is contained in:
parent
bda8ccfc19
commit
94f5fa37ac
@ -8,3 +8,4 @@ LICENSE
|
|||||||
*.md
|
*.md
|
||||||
config.properties
|
config.properties
|
||||||
data/
|
data/
|
||||||
|
testing/
|
||||||
|
5
.github/workflows/ci.yml
vendored
5
.github/workflows/ci.yml
vendored
@ -11,7 +11,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
java: [11, 17]
|
java: [ 11, 17 ]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2.4.0
|
- uses: actions/checkout@v2.4.0
|
||||||
|
|
||||||
@ -22,6 +22,5 @@ jobs:
|
|||||||
distribution: temurin
|
distribution: temurin
|
||||||
check-latest: true
|
check-latest: true
|
||||||
cache: "gradle"
|
cache: "gradle"
|
||||||
|
|
||||||
- name: Run Build
|
- name: Run Build
|
||||||
run: chmod +x ./gradlew && ./gradlew build
|
run: ./gradlew build
|
||||||
|
10
.github/workflows/docker-build-test.yml
vendored
10
.github/workflows/docker-build-test.yml
vendored
@ -18,10 +18,14 @@ jobs:
|
|||||||
- testing/docker-compose.yugabytedb.yml
|
- testing/docker-compose.yugabytedb.yml
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2.4.0
|
- uses: actions/checkout@v2.4.0
|
||||||
with:
|
- name: Create Version File
|
||||||
fetch-depth: 0
|
run: echo $(git log -1 --date=short --pretty=format:%cd)-$(git rev-parse --short HEAD) > VERSION
|
||||||
- name: Build Locally
|
- name: Build Locally
|
||||||
run: docker build . -t 1337kavin/piped:latest
|
uses: docker/build-push-action@v2.9.0
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
load: true
|
||||||
|
tags: 1337kavin/piped:latest
|
||||||
- name: Start Docker-Compose services
|
- name: Start Docker-Compose services
|
||||||
run: docker-compose -f ${{ matrix.docker-compose-file }} up -d && sleep 5
|
run: docker-compose -f ${{ matrix.docker-compose-file }} up -d && sleep 5
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
|
10
.github/workflows/docker-build.yml
vendored
10
.github/workflows/docker-build.yml
vendored
@ -12,8 +12,8 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2.4.0
|
- uses: actions/checkout@v2.4.0
|
||||||
with:
|
- name: Create Version File
|
||||||
fetch-depth: 0
|
run: echo $(git log -1 --date=short --pretty=format:%cd)-$(git rev-parse --short HEAD) > VERSION
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v1.2.0
|
uses: docker/setup-qemu-action@v1.2.0
|
||||||
with:
|
with:
|
||||||
@ -40,8 +40,8 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2.4.0
|
- uses: actions/checkout@v2.4.0
|
||||||
with:
|
- name: Create Version File
|
||||||
fetch-depth: 0
|
run: echo $(git log -1 --date=short --pretty=format:%cd)-$(git rev-parse --short HEAD) > VERSION
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v1.2.0
|
uses: docker/setup-qemu-action@v1.2.0
|
||||||
with:
|
with:
|
||||||
@ -64,3 +64,5 @@ jobs:
|
|||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
push: true
|
push: true
|
||||||
tags: 1337kavin/piped:latest,1337kavin/piped:openj9
|
tags: 1337kavin/piped:latest,1337kavin/piped:openj9
|
||||||
|
cache-from: type=gha
|
||||||
|
cache-to: type=gha,mode=max
|
||||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -23,3 +23,6 @@ bin/
|
|||||||
|
|
||||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||||
hs_err_pid*
|
hs_err_pid*
|
||||||
|
|
||||||
|
# Version File
|
||||||
|
VERSION
|
@ -12,6 +12,8 @@ WORKDIR /app/
|
|||||||
|
|
||||||
COPY --from=build /app/build/libs/piped-1.0-all.jar /app/piped.jar
|
COPY --from=build /app/build/libs/piped-1.0-all.jar /app/piped.jar
|
||||||
|
|
||||||
|
COPY VERSION .
|
||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
|
||||||
CMD java -jar /app/piped.jar
|
CMD java -jar /app/piped.jar
|
||||||
|
@ -12,6 +12,8 @@ WORKDIR /app/
|
|||||||
|
|
||||||
COPY --from=build /app/build/libs/piped-1.0-all.jar /app/piped.jar
|
COPY --from=build /app/build/libs/piped-1.0-all.jar /app/piped.jar
|
||||||
|
|
||||||
|
COPY VERSION .
|
||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
|
||||||
CMD java -server -XX:+UnlockExperimentalVMOptions -XX:+OptimizeStringConcat -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+UseNUMA -XX:+UseParallelGC -XX:-UseBiasedLocking -Xshareclasses:allowClasspaths -jar /app/piped.jar
|
CMD java -server -XX:+UnlockExperimentalVMOptions -XX:+OptimizeStringConcat -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+UseNUMA -XX:+UseParallelGC -XX:-UseBiasedLocking -Xshareclasses:allowClasspaths -jar /app/piped.jar
|
||||||
|
@ -45,6 +45,7 @@ public class ServerLauncher extends MultithreadedHttpServerLauncher {
|
|||||||
|
|
||||||
RoutingServlet router = RoutingServlet.create()
|
RoutingServlet router = RoutingServlet.create()
|
||||||
.map(GET, "/healthcheck", request -> getRawResponse("OK".getBytes(UTF_8), "text/plain", "no-cache"))
|
.map(GET, "/healthcheck", request -> getRawResponse("OK".getBytes(UTF_8), "text/plain", "no-cache"))
|
||||||
|
.map(GET, "/version", AsyncServlet.ofBlocking(executor, request -> getRawResponse(Constants.VERSION.getBytes(UTF_8), "text/plain", "no-cache")))
|
||||||
.map(HttpMethod.OPTIONS, "/*", request -> HttpResponse.ofCode(200))
|
.map(HttpMethod.OPTIONS, "/*", request -> HttpResponse.ofCode(200))
|
||||||
.map(GET, "/webhooks/pubsub", request -> HttpResponse.ok200().withPlainText(Objects.requireNonNull(request.getQueryParameter("hub.challenge"))))
|
.map(GET, "/webhooks/pubsub", request -> HttpResponse.ok200().withPlainText(Objects.requireNonNull(request.getQueryParameter("hub.challenge"))))
|
||||||
.map(POST, "/webhooks/pubsub", AsyncServlet.ofBlocking(executor, request -> {
|
.map(POST, "/webhooks/pubsub", AsyncServlet.ofBlocking(executor, request -> {
|
||||||
|
@ -5,11 +5,13 @@ import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
|
|||||||
import me.kavin.piped.utils.PageMixin;
|
import me.kavin.piped.utils.PageMixin;
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
import okhttp3.brotli.BrotliInterceptor;
|
import okhttp3.brotli.BrotliInterceptor;
|
||||||
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.schabi.newpipe.extractor.NewPipe;
|
import org.schabi.newpipe.extractor.NewPipe;
|
||||||
import org.schabi.newpipe.extractor.Page;
|
import org.schabi.newpipe.extractor.Page;
|
||||||
import org.schabi.newpipe.extractor.StreamingService;
|
import org.schabi.newpipe.extractor.StreamingService;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.net.ProxySelector;
|
import java.net.ProxySelector;
|
||||||
@ -43,6 +45,8 @@ public class Constants {
|
|||||||
|
|
||||||
public static final int FEED_RETENTION;
|
public static final int FEED_RETENTION;
|
||||||
|
|
||||||
|
public static final String VERSION;
|
||||||
|
|
||||||
public static final ObjectMapper mapper = new ObjectMapper().addMixIn(Page.class, PageMixin.class);
|
public static final ObjectMapper mapper = new ObjectMapper().addMixIn(Page.class, PageMixin.class);
|
||||||
|
|
||||||
public static final Object2ObjectOpenHashMap<String, String> hibernateProperties = new Object2ObjectOpenHashMap<>();
|
public static final Object2ObjectOpenHashMap<String, String> hibernateProperties = new Object2ObjectOpenHashMap<>();
|
||||||
@ -89,6 +93,9 @@ public class Constants {
|
|||||||
}
|
}
|
||||||
h2client = builder.build();
|
h2client = builder.build();
|
||||||
h2_no_redir_client = builder_noredir.build();
|
h2_no_redir_client = builder_noredir.build();
|
||||||
|
VERSION = new File("VERSION").exists() ?
|
||||||
|
IOUtils.toString(new FileReader("VERSION")) :
|
||||||
|
"unknown";
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,9 @@
|
|||||||
CURLOPTS=(-i -s -S -o /dev/null -f -w "%{http_code}\tTime:\t%{time_starttransfer}\t%{url_effective}\n")
|
CURLOPTS=(-i -s -S -o /dev/null -f -w "%{http_code}\tTime:\t%{time_starttransfer}\t%{url_effective}\n")
|
||||||
HOST=127.0.0.1:8080
|
HOST=127.0.0.1:8080
|
||||||
|
|
||||||
|
# Version Test
|
||||||
|
curl ${CURLOPTS[@]} $HOST/version || exit 1
|
||||||
|
|
||||||
# Trending Page
|
# Trending Page
|
||||||
curl ${CURLOPTS[@]} $HOST/trending?region=US || exit 1
|
curl ${CURLOPTS[@]} $HOST/trending?region=US || exit 1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user