Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 32 additions & 19 deletions .github/workflows/maven-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ jobs:
strategy:
fail-fast: false
matrix:
java: [17,21,25]
java: [17,21,25,27]
steps:
- uses: actions/checkout@v7
- name: Set up JDK ${{ matrix.java }}
Expand Down Expand Up @@ -108,24 +108,40 @@ jobs:
- 'log.extension/**'
examples:
- 'examples/**'
- name: Felix SCR
if: steps.changes.outputs.scr == 'true'
run: mvn -B -V -Dstyle.color=always --file scr/pom.xml clean verify
- name: Felix Log
if: steps.changes.outputs.log == 'true'
run: mvn -B -V -Dstyle.color=always --file log/pom.xml clean verify
# Built and installed before Felix HTTP, whose integration tests run on it.
# Also runs when only http changed, so those tests always exercise the framework
# in this repository rather than the last release. See FELIX-6869.
# Several modules pin released Felix bundles as test-scoped dependencies so that
# they still build on their own. Each such pin is a property, which the steps below
# override with the version built from this repository, so the tests exercise the
# code being changed rather than the last release. A producer is therefore built and
# installed whenever it or one of its consumers changed. See FELIX-6870.
- name: Resolve the versions built in this repository
if: steps.changes.outputs.framework == 'true' || steps.changes.outputs.http == 'true' || steps.changes.outputs.configadmin == 'true' || steps.changes.outputs.scr == 'true' || steps.changes.outputs.gogo == 'true' || steps.changes.outputs.utils == 'true' || steps.changes.outputs.resolver == 'true'
run: |
record() {
echo "$1=$2" >> "$GITHUB_ENV"
echo "$1 = $2"
}
for module in framework configadmin utils; do
record "$(echo "$module" | tr 'a-z' 'A-Z')_VERSION" "$(mvn -B -q --file "$module/pom.xml" help:evaluate -Dexpression=project.version -DforceStdout)"
done
# gogo-parent is not published anywhere, so these only resolve inside the gogo reactor.
for module in command runtime shell jline; do
record "GOGO_$(echo "$module" | tr 'a-z' 'A-Z')_VERSION" "$(mvn -B -q --file gogo/pom.xml -pl "$module" help:evaluate -Dexpression=project.version -DforceStdout)"
done
- name: Felix Framework
if: steps.changes.outputs.framework == 'true' || steps.changes.outputs.http == 'true'
if: steps.changes.outputs.framework == 'true' || steps.changes.outputs.http == 'true' || steps.changes.outputs.configadmin == 'true' || steps.changes.outputs.scr == 'true' || steps.changes.outputs.gogo == 'true'
run: mvn -B -V -Dstyle.color=always --file framework/pom.xml clean install
- name: Felix Config Admin
if: steps.changes.outputs.configadmin == 'true' || steps.changes.outputs.scr == 'true'
run: mvn -B -V -Dstyle.color=always --file configadmin/pom.xml clean install "-Dfelix.framework.version=$FRAMEWORK_VERSION"
- name: Felix SCR
if: steps.changes.outputs.scr == 'true'
run: mvn -B -V -Dstyle.color=always --file scr/pom.xml clean verify "-Dfelix.framework.version=$FRAMEWORK_VERSION" "-Dfelix.configadmin.version=$CONFIGADMIN_VERSION"
- name: Felix HTTP
if: steps.changes.outputs.http == 'true'
run: |
FRAMEWORK_VERSION=$(mvn -B -q --file framework/pom.xml help:evaluate -Dexpression=project.version -DforceStdout)
echo "Running the integration tests against framework $FRAMEWORK_VERSION"
mvn -B -V -Dstyle.color=always "-Dit.test=!MissingWebsocketDependenciesIT" --file http/pom.xml clean install verify "-Dmaven.repo.local=/home/runner/.m2/repository/" "-Dfelix.framework.version=$FRAMEWORK_VERSION"
run: mvn -B -V -Dstyle.color=always "-Dit.test=!MissingWebsocketDependenciesIT" --file http/pom.xml clean install verify "-Dmaven.repo.local=/home/runner/.m2/repository/" "-Dfelix.framework.version=$FRAMEWORK_VERSION"
- name: Felix Maven bundle plugin
if: steps.changes.outputs.maven-bundle-plugin == 'true'
run: mvn -B -V -Dstyle.color=always --file tools/maven-bundle-plugin/pom.xml clean install verify
Expand All @@ -143,16 +159,16 @@ jobs:
run: mvn -B -V -Dstyle.color=always --file main/pom.xml clean verify
- name: Felix Gogo Shell
if: steps.changes.outputs.gogo == 'true'
run: mvn -B -V -Dstyle.color=always --file gogo/pom.xml clean verify
run: mvn -B -V -Dstyle.color=always --file gogo/pom.xml clean verify "-Dfelix.gogo.command.version=$GOGO_COMMAND_VERSION" "-Dfelix.gogo.runtime.version=$GOGO_RUNTIME_VERSION" "-Dfelix.gogo.shell.version=$GOGO_SHELL_VERSION" "-Dfelix.gogo.jline.version=$GOGO_JLINE_VERSION" "-Dfelix.framework.version=$FRAMEWORK_VERSION"
- name: Felix utils
if: steps.changes.outputs.utils == 'true'
run: mvn -B -V -Dstyle.color=always --file utils/pom.xml clean verify
if: steps.changes.outputs.utils == 'true' || steps.changes.outputs.resolver == 'true'
run: mvn -B -V -Dstyle.color=always --file utils/pom.xml clean install
- name: Felix connect
if: steps.changes.outputs.connect == 'true'
run: mvn -B -V -Dstyle.color=always --file connect/pom.xml clean verify
- name: Felix resolver
if: steps.changes.outputs.resolver == 'true'
run: mvn -B -V -Dstyle.color=always --file resolver/pom.xml clean verify
run: mvn -B -V -Dstyle.color=always --file resolver/pom.xml clean verify "-Dfelix.utils.version=$UTILS_VERSION"
- name: Felix bundlerepository
if: steps.changes.outputs.bundlerepository == 'true'
run: mvn -B -V -Dstyle.color=always --file bundlerepository/pom.xml clean verify
Expand All @@ -162,9 +178,6 @@ jobs:
- name: Felix examples
if: steps.changes.outputs.examples == 'true'
run: mvn -B -V -Dstyle.color=always --file examples/pom.xml clean verify
- name: Felix Config Admin
if: steps.changes.outputs.configadmin == 'true'
run: mvn -B -V -Dstyle.color=always --file configadmin/pom.xml clean verify
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
Expand Down
10 changes: 9 additions & 1 deletion configadmin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@
<bundle.file.name>
${bundle.build.name}/${project.build.finalName}.jar
</bundle.file.name>
<!-- Sibling Felix bundles the tests run against. Pinned to the latest release
so this module also builds on its own; CI overrides them with the locally
built versions so the tests exercise the code in this repository.
See FELIX-6870. -->
<felix.framework.version>7.0.5</felix.framework.version>
</properties>

<dependencies>
Expand Down Expand Up @@ -165,12 +170,15 @@
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
<version>7.0.5</version>
<version>${felix.framework.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework.security</artifactId>
<!-- Not built in this repository any more (removed in the 8.0.0 framework
line, FELIX-6807); only ConfigAdminSecurityTest uses it, and that test is
excluded below. -->
<version>2.8.3</version>
<scope>test</scope>
</dependency>
Expand Down
13 changes: 13 additions & 0 deletions gogo/itest-jline/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,15 @@
<maven.deploy.skip>true</maven.deploy.skip>
<maven.install.skip>true</maven.install.skip>
<maven.javadoc.skip>true</maven.javadoc.skip>
<!-- Sibling Felix bundles these integration tests run against. The gogo BOM
pins released versions, so without these the tests exercise none of the
code in this repository. Pinned to the latest release so the module also
builds on its own; CI overrides them with the versions built here.
See FELIX-6870. -->
<felix.gogo.command.version>1.1.2</felix.gogo.command.version>
<felix.gogo.jline.version>1.1.8</felix.gogo.jline.version>
<felix.gogo.runtime.version>1.1.4</felix.gogo.runtime.version>
<felix.framework.version>6.0.1</felix.framework.version>
</properties>

<dependencies>
Expand All @@ -54,18 +63,22 @@
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.gogo.command</artifactId>
<version>${felix.gogo.command.version}</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.gogo.jline</artifactId>
<version>${felix.gogo.jline.version}</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.gogo.runtime</artifactId>
<version>${felix.gogo.runtime.version}</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
<version>${felix.framework.version}</version>
</dependency>
</dependencies>

Expand Down
13 changes: 13 additions & 0 deletions gogo/itest-shell/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,15 @@
<maven.deploy.skip>true</maven.deploy.skip>
<maven.install.skip>true</maven.install.skip>
<maven.javadoc.skip>true</maven.javadoc.skip>
<!-- Sibling Felix bundles these integration tests run against. The gogo BOM
pins released versions, so without these the tests exercise none of the
code in this repository. Pinned to the latest release so the module also
builds on its own; CI overrides them with the versions built here.
See FELIX-6870. -->
<felix.gogo.command.version>1.1.2</felix.gogo.command.version>
<felix.gogo.shell.version>1.1.4</felix.gogo.shell.version>
<felix.gogo.runtime.version>1.1.4</felix.gogo.runtime.version>
<felix.framework.version>6.0.1</felix.framework.version>
</properties>

<dependencies>
Expand All @@ -54,18 +63,22 @@
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.gogo.command</artifactId>
<version>${felix.gogo.command.version}</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.gogo.shell</artifactId>
<version>${felix.gogo.shell.version}</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.gogo.runtime</artifactId>
<version>${felix.gogo.runtime.version}</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
<version>${felix.framework.version}</version>
</dependency>
</dependencies>

Expand Down
7 changes: 6 additions & 1 deletion gogo/jline/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<bnd.version>7.1.0</bnd.version>
<!-- Sibling Felix bundles the tests run against. Pinned to the latest release
so this module also builds on its own; CI overrides them with the locally
built versions so the tests exercise the code in this repository.
See FELIX-6870. -->
<felix.gogo.command.version>1.1.2</felix.gogo.command.version>
</properties>

<dependencies>
Expand All @@ -63,7 +68,7 @@
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.gogo.command</artifactId>
<version>1.1.2</version>
<version>${felix.gogo.command.version}</version>
<scope>test</scope>
</dependency>
<dependency>
Expand Down
7 changes: 6 additions & 1 deletion http/itest/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@
<http.jetty.id>org.apache.felix.http.jetty12</http.jetty.id>
<pax.exam.version>4.13.3</pax.exam.version>
<pax.url.aether.version>2.6.14</pax.url.aether.version>
<!-- Sibling Felix bundles the tests run against. Pinned to the latest release
so this module also builds on its own; CI overrides them with the locally
built versions so the tests exercise the code in this repository.
See FELIX-6870. -->
<felix.framework.version>7.0.5</felix.framework.version>
</properties>

<profiles>
Expand Down Expand Up @@ -163,7 +168,7 @@
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
<version>7.0.5</version>
<version>${felix.framework.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
7 changes: 6 additions & 1 deletion resolver/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.utils</artifactId>
<version>1.8.0</version>
<version>${felix.utils.version}</version>
<scope>test</scope>
</dependency>
<dependency>
Expand All @@ -69,6 +69,11 @@
</dependency>
</dependencies>
<properties>
<!-- Sibling Felix bundles the tests run against. Pinned to the latest release
so this module also builds on its own; CI overrides them with the locally
built versions so the tests exercise the code in this repository.
See FELIX-6870. -->
<felix.utils.version>1.8.0</felix.utils.version>
</properties>
<build>
<plugins>
Expand Down
11 changes: 9 additions & 2 deletions scr/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,13 @@
<maven.compiler.release>${java.version}</maven.compiler.release>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>

<!-- Sibling Felix bundles the tests run against. Pinned to the latest release
so this module also builds on its own; CI overrides them with the locally
built versions so the tests exercise the code in this repository.
See FELIX-6870. -->
<felix.framework.version>7.0.1</felix.framework.version>
<felix.configadmin.version>1.9.0</felix.configadmin.version>
</properties>


Expand Down Expand Up @@ -259,7 +266,7 @@
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.configadmin</artifactId>
<version>1.9.0</version>
<version>${felix.configadmin.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down Expand Up @@ -399,7 +406,7 @@
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
<version>7.0.1</version>
<version>${felix.framework.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
Loading