Reconfigure for forgejo/woodpecker
This commit is contained in:
parent
1d5b9eeb99
commit
c98864e074
12 changed files with 162 additions and 138 deletions
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
|
@ -1,2 +0,0 @@
|
|||
# https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax
|
||||
* @sschnabe @rpahli @fabian-schlegel @jschwarze @wistefan @monotek
|
14
.github/dependabot.yml
vendored
14
.github/dependabot.yml
vendored
|
@ -1,14 +0,0 @@
|
|||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: maven
|
||||
directory: /
|
||||
schedule:
|
||||
interval: daily
|
||||
allow:
|
||||
- dependency-name: io.kokuwa.maven:maven-parent
|
||||
- dependency-name: org.keycloak:keycloak-quarkus-server
|
||||
- package-ecosystem: github-actions
|
||||
directory: /
|
||||
schedule:
|
||||
interval: monthly
|
||||
day: monday
|
16
.github/settings.xml
vendored
16
.github/settings.xml
vendored
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- https://github.com/actions/setup-java/issues/85 -->
|
||||
<settings>
|
||||
<servers>
|
||||
<server>
|
||||
<id>sonatype-nexus</id>
|
||||
<username>${env.SERVER_USERNAME}</username>
|
||||
<password>${env.SERVER_PASSWORD}</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>github.com</id>
|
||||
<username>nope</username>
|
||||
<password>${env.GIT_ACTION_TOKEN}</password>
|
||||
</server>
|
||||
</servers>
|
||||
</settings>
|
30
.github/workflows/build.yaml
vendored
30
.github/workflows/build.yaml
vendored
|
@ -1,30 +0,0 @@
|
|||
name: Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
|
||||
jobs:
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
MAVEN_ARGS: --batch-mode --color=always --no-transfer-progress --settings=.github/settings.xml
|
||||
steps:
|
||||
- run: git config --global user.name "${{ vars.KOKUWA_IO_BOT_NAME }}"
|
||||
- run: git config --global user.email "${{ vars.KOKUWA_IO_BOT_EMAIL }}"
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
token: ${{ secrets.GIT_ACTION_TOKEN }}
|
||||
- uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: 17
|
||||
cache: maven
|
||||
- run: mvn $MAVEN_ARGS deploy
|
||||
env:
|
||||
SERVER_USERNAME: ${{ secrets.SONATYPE_NEXUS_USERNAME }}
|
||||
SERVER_PASSWORD: ${{ secrets.SONATYPE_NEXUS_PASSWORD }}
|
||||
- run: mvn $MAVEN_ARGS site-deploy
|
||||
env:
|
||||
GIT_ACTION_TOKEN: ${{ secrets.GIT_ACTION_TOKEN }}
|
50
.github/workflows/release.yaml
vendored
50
.github/workflows/release.yaml
vendored
|
@ -1,50 +0,0 @@
|
|||
name: Release
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
MAVEN_ARGS: --batch-mode --color=always --no-transfer-progress --settings=.github/settings.xml
|
||||
steps:
|
||||
- name: docker/login-action docker.io
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: docker.io
|
||||
username: ${{ secrets.DOCKERIO_USERNAME }}
|
||||
password: ${{ secrets.DOCKERIO_TOKEN }}
|
||||
- name: docker/login-action ghcr.io
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GIT_ACTION_TOKEN }}
|
||||
- run: git config --global user.name "${{ vars.KOKUWA_IO_BOT_NAME }}"
|
||||
- run: git config --global user.email "${{ vars.KOKUWA_IO_BOT_EMAIL }}"
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
token: ${{ secrets.GIT_ACTION_TOKEN }}
|
||||
- uses: crazy-max/ghaction-import-gpg@v6
|
||||
with:
|
||||
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
||||
git_user_signingkey: true
|
||||
git_commit_gpgsign: true
|
||||
- uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: 17
|
||||
cache: maven
|
||||
server-id: sonatype-nexus
|
||||
server-username: SERVER_USERNAME
|
||||
server-password: SERVER_PASSWORD
|
||||
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||
gpg-passphrase: GPG_PASSPHRASE
|
||||
- run: mvn $MAVEN_ARGS release:prepare -Darguments="$MAVEN_ARGS"
|
||||
- run: mvn $MAVEN_ARGS release:perform -Darguments="$MAVEN_ARGS"
|
||||
env:
|
||||
SERVER_USERNAME: ${{ secrets.SONATYPE_NEXUS_USERNAME }}
|
||||
SERVER_PASSWORD: ${{ secrets.SONATYPE_NEXUS_PASSWORD }}
|
||||
GIT_ACTION_TOKEN: ${{ secrets.GIT_ACTION_TOKEN }}
|
||||
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
|
|
@ -1,44 +1,43 @@
|
|||
name: PullRequest
|
||||
name: Verify
|
||||
|
||||
on: pull_request
|
||||
on:
|
||||
- pull_request
|
||||
- push:
|
||||
branches: [main]
|
||||
|
||||
env:
|
||||
MAVEN_ARGS: --batch-mode --color=always --no-transfer-progress -Dmaven.test.redirectTestOutputToFile=false
|
||||
|
||||
jobs:
|
||||
|
||||
yaml:
|
||||
renovate:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ibiqlik/action-yamllint@v3
|
||||
with:
|
||||
format: colored
|
||||
strict: true
|
||||
- uses: actions/checkout@main
|
||||
- uses: docker://kokuwaio/renovate-config-validator
|
||||
|
||||
markdown:
|
||||
markdownlint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: avto-dev/markdown-lint@v1
|
||||
with:
|
||||
args: /github/workspace
|
||||
- uses: actions/checkout@main
|
||||
- uses: docker://kokuwaio/markdownlint
|
||||
|
||||
yamllint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@main
|
||||
- uses: docker://kokuwaio/yamllint
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-java@v4
|
||||
- uses: actions/checkout@main
|
||||
- uses: actions/setup-java@main
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: 17
|
||||
cache: maven
|
||||
- run: mvn $MAVEN_ARGS verify
|
||||
- run: mvn $MAVEN_ARGS site
|
||||
- uses: actions/upload-artifact@v4
|
||||
if: always()
|
||||
with:
|
||||
path: target/site
|
||||
|
||||
versions:
|
||||
runs-on: ubuntu-latest
|
||||
|
@ -54,8 +53,8 @@ jobs:
|
|||
- 26.1.5
|
||||
- 26.2.1
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-java@v4
|
||||
- uses: actions/checkout@main
|
||||
- uses: actions/setup-java@main
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: 17
|
29
.woodpecker/build.yaml
Normal file
29
.woodpecker/build.yaml
Normal file
|
@ -0,0 +1,29 @@
|
|||
when:
|
||||
event: [manual, push]
|
||||
branch: main
|
||||
path: [.woodpecker/build.yaml, pom.xml, src/**]
|
||||
|
||||
services:
|
||||
- name: dockerd
|
||||
image: kokuwaio/dockerd
|
||||
ports: [2375, 8080]
|
||||
|
||||
steps:
|
||||
|
||||
build:
|
||||
image: maven:3.9.9-eclipse-temurin-17
|
||||
commands:
|
||||
- env | sort
|
||||
- mvn deploy --settings=.woodpecker/maven/settings.xml -Dmaven.test.redirectTestOutputToFile=true -X
|
||||
environment:
|
||||
NEXUS_USERNAME: {from_secret: nexus_username}
|
||||
NEXUS_PASSWORD: {from_secret: nexus_password}
|
||||
|
||||
debug:
|
||||
image: kokuwaio/dockerd
|
||||
commands:
|
||||
- docker ps --all
|
||||
- docker logs keylcoak
|
||||
- exit 1
|
||||
when:
|
||||
status: failure
|
21
.woodpecker/lint.yaml
Normal file
21
.woodpecker/lint.yaml
Normal file
|
@ -0,0 +1,21 @@
|
|||
when:
|
||||
event: [manual, pull_request, push]
|
||||
branch: main
|
||||
path: [.woodpecker/lint.yaml, renovate.json, "**/*.y*ml", "**/*.md"]
|
||||
|
||||
steps:
|
||||
|
||||
renovate:
|
||||
image: kokuwaio/renovate-config-validator
|
||||
depends_on: []
|
||||
when: [path: [.woodpecker/lint.yaml, renovate.json]]
|
||||
|
||||
yaml:
|
||||
image: kokuwaio/yamllint
|
||||
depends_on: []
|
||||
when: [path: [.woodpecker/lint.yaml, .yamllint.yaml, "**/*.y*ml"]]
|
||||
|
||||
markdown:
|
||||
image: kokuwaio/markdownlint
|
||||
depends_on: []
|
||||
when: [path: [.woodpecker/lint.yaml, .markdownlint.yaml, "**/*.md"]]
|
18
.woodpecker/maven/settings.xml
Normal file
18
.woodpecker/maven/settings.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
|
||||
<interactiveMode>false</interactiveMode>
|
||||
<localRepository>/woodpecker/.m2</localRepository>
|
||||
<servers>
|
||||
<server>
|
||||
<id>sonatype-nexus</id>
|
||||
<username>${env.NEXUS_USERNAME}</username>
|
||||
<password>${env.NEXUS_PASSWORD}</password>
|
||||
</server>
|
||||
</servers>
|
||||
<mirrors>
|
||||
<mirror>
|
||||
<url>http://mirror.woodpecker.svc/maven2</url>
|
||||
<mirrorOf>central</mirrorOf>
|
||||
</mirror>
|
||||
</mirrors>
|
||||
</settings>
|
23
.woodpecker/verify.yaml
Normal file
23
.woodpecker/verify.yaml
Normal file
|
@ -0,0 +1,23 @@
|
|||
when:
|
||||
event: [manual, pull_request]
|
||||
path: [.woodpecker/verify.yaml, pom.xml, src/**]
|
||||
|
||||
matrix:
|
||||
KEYCLOAK_VERSION:
|
||||
- 22.0.5
|
||||
- 23.0.7
|
||||
- 24.0.5
|
||||
- 25.0.6
|
||||
- 26.0.8
|
||||
- 26.1.5
|
||||
- 26.2.5
|
||||
|
||||
services:
|
||||
- name: dockerd
|
||||
image: kokuwaio/dockerd
|
||||
ports: [2375, 8080]
|
||||
|
||||
steps:
|
||||
verify:
|
||||
image: maven:3.9.9-eclipse-temurin-17
|
||||
commands: mvn verify --settings=.woodpecker/maven/settings.xml -Dversion.org.keycloak.test=$KEYCLOAK_VERSION
|
33
renovate.json
Normal file
33
renovate.json
Normal file
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"labels": ["renovate", "renovate-manager/{{{manager}}}", "renovate-type/{{{updateType}}}"],
|
||||
"dependencyDashboard": true,
|
||||
"dependencyDashboardLabels": ["renovate"],
|
||||
"dependencyDashboardApproval": true,
|
||||
"dependencyDashboardOSVVulnerabilitySummary": "all",
|
||||
"separateMajorMinor": true,
|
||||
"separateMinorPatch": true,
|
||||
"separateMultipleMinor": true,
|
||||
"separateMultipleMajor": true,
|
||||
"pinDigests": true,
|
||||
"automerge": false,
|
||||
"automergeStrategy": "fast-forward",
|
||||
"rebaseWhen": "behind-base-branch",
|
||||
"packageRules": [
|
||||
{
|
||||
"matchUpdateTypes": ["digest"],
|
||||
"dependencyDashboardApproval": false,
|
||||
"automergeType": "branch"
|
||||
},{
|
||||
"matchUpdateTypes": ["patch"],
|
||||
"dependencyDashboardApproval": false,
|
||||
"automerge": true
|
||||
},{
|
||||
"matchUpdateTypes": ["minor"],
|
||||
"dependencyDashboardApproval": false
|
||||
},{
|
||||
"matchManagers": ["woodpecker"],
|
||||
"pinDigests": false
|
||||
}
|
||||
]
|
||||
}
|
|
@ -15,6 +15,7 @@ import org.junit.jupiter.api.extension.ParameterContext;
|
|||
import org.junit.jupiter.api.extension.ParameterResolver;
|
||||
import org.keycloak.admin.client.Keycloak;
|
||||
import org.keycloak.admin.client.token.TokenService;
|
||||
import org.testcontainers.containers.FixedHostPortGenericContainer;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.utility.MountableFile;
|
||||
|
@ -29,6 +30,7 @@ public class KeycloakExtension implements BeforeAllCallback, ParameterResolver {
|
|||
private static KeycloakClient client;
|
||||
private static Prometheus prometheus;
|
||||
|
||||
@SuppressWarnings({ "resource", "deprecation" })
|
||||
@Override
|
||||
public void beforeAll(ExtensionContext context) throws Exception {
|
||||
|
||||
|
@ -45,14 +47,20 @@ public class KeycloakExtension implements BeforeAllCallback, ParameterResolver {
|
|||
throw new Exception("Failed to read properties", e);
|
||||
}
|
||||
var version = properties.getProperty("version");
|
||||
var image = "quay.io/keycloak/keycloak:" + version;
|
||||
var jar = properties.getProperty("jar");
|
||||
var timeout = properties.getProperty("timeout");
|
||||
|
||||
// create and start container
|
||||
|
||||
@SuppressWarnings("resource")
|
||||
var container = new GenericContainer<>("quay.io/keycloak/keycloak:" + version)
|
||||
.withEnv("KEYCLOAK_ADMIN", "admin")
|
||||
var container = new GenericContainer<>(image).withExposedPorts(8080);
|
||||
if (System.getenv("CI") != null) {
|
||||
// use fixed port and hostname in ci
|
||||
container = new FixedHostPortGenericContainer<>(image)
|
||||
.withFixedExposedPort(8080, 8080)
|
||||
.withCreateContainerCmdModifier(c -> c.withName("keycloak"));
|
||||
}
|
||||
container.withEnv("KEYCLOAK_ADMIN", "admin")
|
||||
.withEnv("KEYCLOAK_ADMIN_PASSWORD", "password")
|
||||
.withEnv("KC_LOG_LEVEL", "io.kokuwa:trace")
|
||||
// otherwise port 9000 will be used, with this config we can test different keycloak versions
|
||||
|
@ -63,7 +71,6 @@ public class KeycloakExtension implements BeforeAllCallback, ParameterResolver {
|
|||
.withEnv("KC_METRICS_STATS_INTERVAL", "PT1s")
|
||||
.withCopyFileToContainer(MountableFile.forHostPath(jar), "/opt/keycloak/providers/metrics.jar")
|
||||
.withLogConsumer(out -> System.out.print(out.getUtf8String()))
|
||||
.withExposedPorts(8080)
|
||||
.withStartupTimeout(Duration.parse(timeout))
|
||||
.waitingFor(Wait.forHttp("/health").forPort(8080))
|
||||
.withCommand("start-dev");
|
||||
|
@ -76,6 +83,12 @@ public class KeycloakExtension implements BeforeAllCallback, ParameterResolver {
|
|||
// create client for keycloak container
|
||||
|
||||
var url = "http://" + container.getHost() + ":" + container.getMappedPort(8080);
|
||||
System.out.println(container.getHost());
|
||||
System.out.println(container.getHost());
|
||||
System.out.println(container.getHost());
|
||||
System.out.println(container.getExtraHosts());
|
||||
System.out.println(container.getExtraHosts());
|
||||
System.out.println(container.getExtraHosts());
|
||||
var keycloak = Keycloak.getInstance(url, "master", "admin", "password", "admin-cli");
|
||||
assertEquals(version, keycloak.serverInfo().getInfo().getSystemInfo().getVersion(), "version invalid");
|
||||
var target = ClientBuilder.newClient().target(url);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue