Compare commits

..

4 Commits

Author SHA1 Message Date
b2c166c806 woodpecker.yml aktualisiert
All checks were successful
ci/woodpecker/cron/woodpecker Pipeline was successful
2025-01-24 18:53:39 +01:00
5ec9a95d5e added style...
All checks were successful
continuous-integration/drone/push Build is passing
2024-12-29 17:19:41 +01:00
bb419be5f4 init maven subsystem in docker
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2024-12-23 15:44:45 +01:00
3edcc4e09d actually get configuration from env *facepalm*
All checks were successful
continuous-integration/drone/push Build is passing
2024-12-23 15:30:25 +01:00
7 changed files with 153 additions and 44 deletions

View File

@ -9,6 +9,11 @@ COPY target/mavor.war /usr/local/tomcat/webapps/ROOT.war
# create temporary directory, no need to be a volume
RUN mkdir /mavor
# this mvn command fails but is intended to fail
# it just initializes maven subsystem so the first
# download on the website is faster
RUN /usr/bin/mvn dependency:copy-dependencies || echo "maven init done. fail is intended"
# set required ENV
ENV MAVOR_MAVEN_EXECUTABLE="/usr/bin/mvn"
ENV MAVOR_TEMP_DIR="/mavor"

View File

@ -1,21 +0,0 @@
kind: pipeline
name: default
steps:
- name: maven
image: maven:3
commands:
- mvn package
- name: docker
image: plugins/docker
settings:
dockerfile: build/Dockerfile
registry: source.devloop.de
repo: source.devloop.de/damage/mavor
username:
from_secret: docker_username
password:
from_secret: docker_password
tags:
- latest
- '1'

View File

@ -2,6 +2,7 @@ package de.devloop.mavor;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
import java.util.Objects;
import java.util.Properties;
@ -41,17 +42,30 @@ public class Configuration {
developmentProperties.load(developmentPropertiesStream);
initByProperties(developmentProperties);
} else {
initByProperties(System.getProperties());
initByMap(System.getenv());
}
}
private void initByMap(Map<String, String> map) {
webRoot = Objects.requireNonNull(map.get(ENV_WEB_ROOT));
mavenExecutable = Objects.requireNonNull(map.get(ENV_MAVEN_EXECUTABLE));
tempDir = Objects.requireNonNull(map.get(ENV_TEMP_DIR));
openIdClientId = Objects.requireNonNull(map.get(ENV_OPENID_CLIENT_ID));
openIdClientSecret = Objects.requireNonNull(map.get(ENV_OPENID_CLIENT_SECRET));
openIdRedirectUrl = Objects.requireNonNull(map.get(ENV_OPENID_REDIRECT_URL));
openIdAuthUrl = Objects.requireNonNull(map.get(ENV_OPENID_AUTH_URL));
openIdTokenUrl = Objects.requireNonNull(map.get(ENV_OPENID_TOKEN_URL));
openIdUserInfoUrl = Objects.requireNonNull(map.get(ENV_OPENID_USERINFO_URL));
openIdLogoutUrl = Objects.requireNonNull(map.get(ENV_OPENID_LOGOUT_URL));
}
private void initByProperties(Properties properties) {
webRoot = getNullSafeProperty(properties, ENV_WEB_ROOT);
mavenExecutable = getNullSafeProperty(properties, ENV_MAVEN_EXECUTABLE);
tempDir = getNullSafeProperty(properties, ENV_TEMP_DIR);
openIdClientId = getNullSafeProperty(properties, ENV_OPENID_CLIENT_ID);
openIdClientSecret = getNullSafeProperty(properties, ENV_OPENID_CLIENT_SECRET);
openIdRedirectUrl = getNullSafeProperty((properties), ENV_OPENID_REDIRECT_URL);
openIdRedirectUrl = getNullSafeProperty(properties, ENV_OPENID_REDIRECT_URL);
openIdAuthUrl = getNullSafeProperty(properties, ENV_OPENID_AUTH_URL);
openIdTokenUrl = getNullSafeProperty(properties, ENV_OPENID_TOKEN_URL);
openIdUserInfoUrl = getNullSafeProperty(properties, ENV_OPENID_USERINFO_URL);

View File

@ -1,10 +1,15 @@
<%@ taglib uri="jakarta.tags.core" prefix="c" %>
<%@ page isELIgnored="false" %>
<html>
<body style="background-color:black; color:white">
Download dependencies (Link only works once!): <a href="${WEB_ROOT}/download/zip?file=${zipFilename}">${zipFilename}</a><br/>
<a href="${WEB_ROOT}/logout">logout</a> | <a href="${WEB_ROOT}">back</a><br/>
Maven Output:<br/>
<head>
<link rel="stylesheet" href="${WEB_ROOT}/style/main.css">
</head>
<body>
<h2>Hello ${username}</h2>
<a href="${WEB_ROOT}/logout">logout</a> | <a href="${WEB_ROOT}">back</a>
<h3>Download dependencies</h3>
(Link only works once!) <a href="${WEB_ROOT}/download/zip?file=${zipFilename}">${zipFilename}</a>
<h3>Maven Output:</h3>
<pre>${stdout}</pre>
</body>
</html>

View File

@ -1,21 +1,59 @@
<%@ taglib uri="jakarta.tags.core" prefix="c" %>
<%@ page isELIgnored="false" %>
<html>
<body style="background-color:black; color:white">
<h2>Hello ${username}</h2>
<form method="get" action="${WEB_ROOT}/download/jars">
<head>
<link rel="stylesheet" href="${WEB_ROOT}/style/main.css">
</head>
<body>
<h2>Hello ${username}</h2>
<a href="${WEB_ROOT}/logout">logout</a>
<h3>download dependencies of given artifact:</h3>
<form method="get" action="${WEB_ROOT}/download/jars">
<input type="hidden" name="type" value="artifact"/>
Repository: <input type="text" name="repository" value="https://source.devloop.de/api/packages/damage/maven/" /><br/>
Group ID: <input type="text" name="groupId" value="org.apache.activemq"/><br/>
Artifact ID: <input type="text" name="artifactId" value="artemis-core-client"/><br/>
Version: <input type="text" name="version" value="2.39.0"/><br/>
<input type="submit"/>
</form>
<form method="post" action="${WEB_ROOT}/download/jars">
<div class="row">
<div class="label">
<label for="repository">Repository:</label>
</div>
<div class="input">
<input type="text" name="repository" id="repository" value="https://source.devloop.de/api/packages/damage/maven/" />
</div>
</div>
<div class="row">
<div class="label">
<label for="groupId">Group ID:</label>
</div>
<div class="input small">
<input type="text" name="groupId" id="groupId" value="org.apache.activemq"/>
</div>
</div>
<div class="row">
<div class="label">
<label for="artifactId">Artifact ID:</label>
</div>
<div class="input small">
<input type="text" name="artifactId" id="artifactId" value="artemis-core-client"/>
</div>
</div>
<div class="row">
<div class="label">
<label for="version">Version:</label>
</div>
<div class="input small">
<input type="text" name="version" id="version" value="2.39.0"/>
</div>
</div>
<input type="submit" value="download by artifact"/>
</form>
<h3>download dependencies as given in pom.xml:</h3>
<form method="post" action="${WEB_ROOT}/download/jars">
<input type="hidden" name="type" value="pom"/>
POM: <textarea name="pom" cols="80" rows="20"></textarea><br/>
<input type="submit"/>
</form>
<a href="${WEB_ROOT}/logout">logout</a>
</body>
<div class="row">
<div class="input big">
<textarea name="pom" id="pom"></textarea><br/>
</div>
</div>
<input type="submit" value="download by pom.xml"/>
</form>
</body>
</html>

View File

@ -0,0 +1,46 @@
body {
background-color: #1b1b1b;
color: #c0c0c0;
}
h3 {
margin-bottom: 0;
}
textarea, input {
background-color: #2b2b2b;
color: #c0c0c0;
}
.row {
width: 100%;
}
.row div {
display: inline-block;
}
.label {
width: 75pt;
}
.input {
width: 300pt;
}
.input.small {
width: 150pt;
}
.input.big {
width: 500pt;
}
.input input, .input textarea {
width: 100%;
}
.input textarea {
height: 50em;
white-space: pre;
}

22
woodpecker.yml Normal file
View File

@ -0,0 +1,22 @@
when:
- event: [cron, manual]
steps:
- name: maven
image: maven:3
commands:
- mvn package
- name: tag
image: node
commands:
- echo -n "$(date +%Y%m%d_%H%M%S), latest, 1" > .tags
- name: docker
image: woodpeckerci/plugin-docker-buildx:5
settings:
dockerfile: build/Dockerfile
registry: https://source.devloop.de
repo: source.devloop.de/damage/mavor
username:
from_secret: docker_username
password:
from_secret: docker_password