Skip to content

Commit a1cc06a

Browse files
committed
initial commit
Signed-off-by: Andrew Berezovskyi <andriib@kth.se>
0 parents  commit a1cc06a

93 files changed

Lines changed: 103371 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/dependabot.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "maven"
4+
directory: "/source/"
5+
open-pull-requests-limit: 50
6+
schedule:
7+
interval: "daily"
8+
- package-ecosystem: "docker"
9+
directory: "/source/BugzillaLyoArchives"
10+
open-pull-requests-limit: 30
11+
schedule:
12+
interval: "daily"
13+
- package-ecosystem: "github-actions"
14+
directory: "/"
15+
open-pull-requests-limit: 30
16+
schedule:
17+
interval: "daily"

.github/workflows/docker.yml

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
name: "Docker Build and Push (Bugzilla Lyo archives)"
2+
3+
on:
4+
push:
5+
branches: [main, master]
6+
paths:
7+
- 'source/**'
8+
- '.github/workflows/docker.yml'
9+
release:
10+
types: [published]
11+
schedule:
12+
# Weekly rebuild every Thursday at 5:00 AM UTC to get latest base image updates
13+
- cron: '0 5 * * 4'
14+
workflow_dispatch:
15+
16+
env:
17+
REGISTRY: ghcr.io
18+
IMAGE_NAME: ${{ github.repository }}
19+
20+
jobs:
21+
build-and-push:
22+
runs-on: ubuntu-latest
23+
permissions:
24+
contents: read
25+
packages: write
26+
27+
steps:
28+
- name: Checkout repository
29+
uses: actions/checkout@v4
30+
31+
- name: Check build trigger
32+
run: |
33+
if [ "${{ github.event_name }}" = "schedule" ]; then
34+
echo "🔄 This is a scheduled weekly rebuild to update base images"
35+
elif [ "${{ github.event_name }}" = "release" ]; then
36+
echo "🚀 This is a release build"
37+
else
38+
echo "📦 This is a regular build triggered by push"
39+
fi
40+
41+
- name: Log in to Container Registry
42+
uses: docker/login-action@v3
43+
with:
44+
registry: ${{ env.REGISTRY }}
45+
username: ${{ github.actor }}
46+
password: ${{ secrets.GITHUB_TOKEN }}
47+
48+
- name: Extract metadata
49+
id: meta
50+
uses: docker/metadata-action@v5
51+
with:
52+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
53+
tags: |
54+
# For pushes to master/main branch or scheduled builds, tag as "latest"
55+
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) || github.event_name == 'schedule' }}
56+
# For releases, create semantic version tags
57+
type=semver,pattern={{version}}
58+
type=semver,pattern={{major}}.{{minor}}
59+
type=semver,pattern={{major}}
60+
labels: |
61+
org.opencontainers.image.title=Eclipse Lyo Bugzilla archives
62+
org.opencontainers.image.description=A demonstration OSLC CM server Eclipse Bugzilla Lyo archives
63+
org.opencontainers.image.source="https://github.com/OSLC/adaptor-bugzilla-eclipse-archive"
64+
org.opencontainers.image.licenses="EPL-2.0"
65+
66+
- name: Set up Docker Buildx
67+
uses: docker/setup-buildx-action@v3
68+
69+
- name: Build and push Docker image
70+
uses: docker/build-push-action@v5
71+
with:
72+
context: ./source/BugzillaLyoArchives
73+
file: ./source/BugzillaLyoArchives/Dockerfile
74+
push: true
75+
tags: ${{ steps.meta.outputs.tags }}
76+
labels: ${{ steps.meta.outputs.labels }}
77+
platforms: linux/amd64,linux/arm64
78+
cache-from: type=gha
79+
cache-to: type=gha,mode=max
80+
# For scheduled builds, don't use cache to ensure fresh base images
81+
no-cache: ${{ github.event_name == 'schedule' }}
82+
pull: true
83+
84+
- name: Output image details
85+
run: |
86+
echo "Image has been pushed to:"
87+
echo "${{ steps.meta.outputs.tags }}" | while read -r tag; do
88+
echo " - $tag"
89+
done
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Acceptance test (Lyo HEAD)
2+
run-name: "acceptance@${{ github.ref_name }} (Lyo@${{ github.event.inputs.lyoBranch }}; comment: ${{ inputs.comment }})"
3+
4+
on:
5+
workflow_dispatch:
6+
inputs:
7+
lyoBranch:
8+
description: 'Lyo branch to test on'
9+
required: true
10+
default: 'master'
11+
lyoRepo:
12+
description: 'Lyo repository or fork'
13+
required: true
14+
default: 'eclipse/lyo'
15+
comment:
16+
description: 'comment, e.g. PR number'
17+
default: 'n/a'
18+
19+
concurrency:
20+
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.lyoRepo }}-${{ github.event.inputs.lyoBranch }}
21+
cancel-in-progress: false
22+
23+
jobs:
24+
build-jdk17:
25+
runs-on: ubuntu-latest
26+
strategy:
27+
fail-fast: false
28+
matrix:
29+
java-version: [25]
30+
# distribution: ['temurin', 'zulu', 'oracle', 'corretto', 'microsoft', 'liberica']
31+
distribution: ['temurin']
32+
# include:
33+
# - java-version: '21'
34+
# distribution: 'temurin'
35+
steps:
36+
- uses: actions/checkout@v6
37+
with:
38+
repository: "${{ github.event.inputs.lyoRepo }}"
39+
ref: "${{ github.event.inputs.lyoBranch }}"
40+
path: lyo-trunk
41+
- uses: actions/checkout@v6
42+
with:
43+
path: main
44+
- name: Set up JDK ${{ matrix.java-version }}
45+
uses: actions/setup-java@v4
46+
with:
47+
distribution: ${{ matrix.distribution }}
48+
java-version: ${{ matrix.java-version }}
49+
- name: 'Maven build (Lyo)'
50+
run: mvn -B clean install --file lyo-trunk/pom.xml -DskipTests -Dmaven.javadoc.skip=true
51+
- name: 'Maven build (project)'
52+
run: |
53+
mvn -B clean verify --file main/source/BugzillaLyoArchives/pom.xml

.github/workflows/maven.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main, master]
6+
pull_request:
7+
branches: [main, master]
8+
schedule:
9+
- cron: "19 4 * * 4" # catch SNAPSHOT breaking changes
10+
merge_group:
11+
workflow_dispatch:
12+
13+
concurrency:
14+
group: ${{ github.workflow }}-${{ github.ref }}
15+
cancel-in-progress: ${{ github.ref != 'refs/heads/master' && github.ref != 'refs/heads/main' }}
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
strategy:
21+
fail-fast: false
22+
matrix:
23+
jdk: ['25']
24+
distribution: ['temurin']
25+
experimental: [false]
26+
# include:
27+
# - jdk: '26-ea'
28+
# distribution: 'zulu'
29+
# experimental: true
30+
continue-on-error: ${{ matrix.experimental }}
31+
32+
steps:
33+
- uses: actions/checkout@v4
34+
- name: Set up JDK ${{ matrix.jdk }}
35+
uses: actions/setup-java@v4
36+
with:
37+
distribution: ${{ matrix.distribution }}
38+
java-version: ${{ matrix.jdk }}
39+
- uses: actions/cache@v4
40+
with:
41+
path: ~/.m2/repository
42+
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
43+
restore-keys: |
44+
${{ runner.os }}-maven-
45+
46+
- name: 'Maven build'
47+
run: |
48+
mvn -B clean verify --file ./BugzillaCachedAdaptor/pom.xml

.gitignore

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
#########################
2+
# PROJECT
3+
#########################
4+
5+
6+
#########################
7+
# JAVA
8+
#########################
9+
10+
**/build/
11+
12+
*.class
13+
14+
# Mobile Tools for Java (J2ME)
15+
.mtj.tmp/
16+
17+
# Package Files #
18+
*.jar
19+
*.war
20+
*.ear
21+
22+
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
23+
hs_err_pid*
24+
25+
26+
###############################
27+
# Eclipse
28+
# exceptions: .project, .launch
29+
###############################
30+
31+
.metadata
32+
**/bin/
33+
**/tmp/
34+
*.tmp
35+
*.bak
36+
*.swp
37+
*~.nib
38+
local.properties
39+
**/.settings/
40+
.loadpath
41+
.recommenders
42+
43+
# External tool builders
44+
**/.externalToolBuilders/
45+
46+
# PyDev specific (Python IDE for Eclipse)
47+
*.pydevproject
48+
49+
# CDT-specific (C/C++ Development Tooling)
50+
.cproject
51+
52+
# JDT-specific (Eclipse Java Development Tools)
53+
.classpath
54+
55+
# Java annotation processor (APT)
56+
.factorypath
57+
58+
# PDT-specific (PHP Development Tools)
59+
.buildpath
60+
61+
# sbteclipse plugin
62+
.target
63+
64+
# Tern plugin
65+
.tern-project
66+
67+
# TeXlipse plugin
68+
.texlipse
69+
70+
# STS (Spring Tool Suite)
71+
.springBeans
72+
73+
# Code Recommenders
74+
**/.recommenders/
75+
76+
77+
#########################
78+
# MAVEN
79+
#########################
80+
81+
**/overlays/
82+
**/target/
83+
pom.xml.tag
84+
pom.xml.releaseBackup
85+
pom.xml.versionsBackup
86+
pom.xml.next
87+
release.properties
88+
dependency-reduced-pom.xml
89+
buildNumber.properties
90+
**/.mvn/timing.properties
91+
92+
93+
#########################
94+
# JETBRAINS
95+
#########################
96+
97+
.idea/
98+
99+
## File-based project format:
100+
*.iws
101+
102+
.idea_modules/
103+
104+
# JIRA plugin
105+
atlassian-ide-plugin.xml
106+
107+
# Crashlytics plugin (for Android Studio and IntelliJ)
108+
com_crashlytics_export_strings.xml
109+
crashlytics.properties
110+
crashlytics-build.properties
111+
fabric.properties

0 commit comments

Comments
 (0)