Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change project structure and build process to pure (Tycho-less) Maven #85

Merged
merged 23 commits into from
Nov 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
70f967e
change structure and build process to pure Maven
larsk21 Nov 29, 2023
e738d6a
disable pure Maven CI workflow for PR and nightly
larsk21 Nov 29, 2023
e278e3b
fix failing Maven `install` in test packages
larsk21 Dec 7, 2023
b348ea1
remove relativePath to parent POM
larsk21 Dec 15, 2023
a08de84
prioritize maven central repository
larsk21 Feb 13, 2024
38f7f7b
small Maven fixes
larsk21 Feb 21, 2024
3ba209f
change testutils artifactId to include 'change'
larsk21 Dec 15, 2023
b92b5dd
refactor testutils to break circular dependencies
larsk21 Feb 21, 2024
0498c22
integrate test modules as tests in their tested modules
larsk21 Feb 21, 2024
96d40a2
small pom formatting
larsk21 Feb 21, 2024
6ebc7d2
switch to non-local build parent
larsk21 Aug 1, 2024
0f63191
update dependency versions
larsk21 Oct 28, 2024
32765fc
update CI workflow
larsk21 Nov 5, 2024
1d7c114
update snapshot version to 3.1.0-SNAPSHOT
larsk21 Nov 5, 2024
41ce174
temporarily enable manual snapshot deployment
larsk21 Nov 5, 2024
53c3779
disable tests for snapshot deployment (after verification)
larsk21 Nov 5, 2024
e9fd3b2
enable snapshot deployment only for nightly builds
larsk21 Nov 5, 2024
3e6e279
add SCM information and license URL
larsk21 Nov 5, 2024
d7644c7
ignore maven-wrapper.jar
larsk21 Nov 6, 2024
79c87d1
Merge branch 'main' into build/pure-maven
larsk21 Nov 12, 2024
72583ec
remove unnecessary dependencies
larsk21 Nov 12, 2024
f17e1b2
add dependabot config
larsk21 Nov 12, 2024
169b4ed
rename CI workflow
larsk21 Nov 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
* @TomWerm
* @vitruv-tools/maintainers
26 changes: 16 additions & 10 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "wednesday"
time: "11:00"
timezone: "Europe/Berlin"
commit-message:
prefix: "GitHub Actions"
include: "scope"
- package-ecosystem: maven
directory: "/"
schedule:
interval: daily
ignore:
- dependency-name: tools.vitruv:*
commit-message:
prefix: "Maven"
include: "scope"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
commit-message:
prefix: "GitHub Actions"
include: "scope"
142 changes: 78 additions & 64 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,73 +1,87 @@
name: CI

# workflow triggers
on:
push:
branches: [main]
release:
types: [created]
# manually
workflow_dispatch:
# PRs on `main`
pull_request:
branches:
- main
# nightly
schedule:
- cron: '35 2 * * *' # run nightly at 2:35 am
workflow_call:
- cron: "0 3 * * *"

jobs:
build:
verify:
name: Verify build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
fail-fast: false
runs-on: ${{ matrix.os }}
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]

steps:
- name: Checkout repository
uses: actions/[email protected]

- name: Setup Java and Maven cache
uses: actions/[email protected]
with:
distribution: 'temurin'
java-version: '17'
check-latest: true
cache: 'maven'

- name: Verify build
run: >
./mvnw clean verify
--batch-mode
--update-snapshots
--no-transfer-progress

- name: Stage build results
run: mkdir staging-${{ matrix.os }} && cp **/target/*.jar staging-${{ matrix.os }}/

- name: Upload build results
uses: actions/[email protected]
with:
name: Build Results
path: staging-*/

deploy-snapshot:
name: Deploy snapshot
runs-on: ubuntu-latest
needs: [verify]
if: github.ref == 'refs/heads/main' && github.repository_owner == 'vitruv-tools'
strategy:
fail-fast: true

steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cache
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml', '**/MANIFEST.MF') }}
restore-keys: ${{ runner.os }}-m2
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
- name: Build and Verify
run: >
./mvnw -B -U clean verify
'-Dstyle.color=always'
'-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
'-Dorg.slf4j.simpleLogger.log.org.eclipse.tycho.core.resolver.DefaultTychoResolver=warn'
'-Dorg.slf4j.simpleLogger.log.org.eclipse.tycho.osgi.configuration.MavenContextConfigurator=warn'
'-Dorg.slf4j.simpleLogger.log.org.eclipse.sisu.equinox.launching.internal.DefaultEquinoxLauncher=warn'
'-Dorg.slf4j.simpleLogger.log.org.eclipse.xtext.maven.XtextGenerateMojo=warn'
'-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog'
env:
MAVEN_OPTS: -Djansi.force=true
- name: Store Change Artifact
if: github.event_name == 'pull_request' && matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v4
with:
name: change
path: releng/tools.vitruv.change.updatesite/target/repository
retention-days: 1
- name: Publish Nightly Update Site
if: github.event_name != 'release' && github.ref == 'refs/heads/main' && github.repository_owner == 'vitruv-tools' && matrix.os == 'ubuntu-latest'
uses: peaceiris/actions-gh-pages@v4
with:
deploy_key: ${{ secrets.UPDATE_SITE_DEPLOY_KEY }}
external_repository: vitruv-tools/updatesite
destination_dir: nightly/change
publish_dir: releng/tools.vitruv.change.updatesite/target/repository
publish_branch: main
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
- name: Publish Release Update Site
if: github.event_name == 'release' && github.repository_owner == 'vitruv-tools' && matrix.os == 'ubuntu-latest'
uses: peaceiris/actions-gh-pages@v4
with:
deploy_key: ${{ secrets.UPDATE_SITE_DEPLOY_KEY }}
external_repository: vitruv-tools/updatesite
destination_dir: release/change/${{ github.event.release.tag_name }}
publish_dir: releng/tools.vitruv.change.updatesite/target/repository
publish_branch: main
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
- name: Checkout repository
uses: actions/[email protected]

- name: Setup Java and Maven cache
uses: actions/[email protected]
with:
distribution: 'temurin'
java-version: '17'
check-latest: true
cache: 'maven'
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE

- name: Deploy snapshot
run: >
./mvnw clean deploy -P snapshot
-DskipTests
--batch-mode
--update-snapshots
--no-transfer-progress
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
178 changes: 0 additions & 178 deletions .github/workflows/validation.yml

This file was deleted.

Loading
Loading