new tests #2688
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Project | |
on: | |
push: | |
branches-ignore: | |
- 'dependabot/**' | |
tags: | |
- '*' | |
workflow_dispatch: | |
jobs: | |
CodeAudits: | |
uses: evanchooly/workflows/.github/workflows/code-audits.yml@master | |
with: | |
java: 17 | |
Build: | |
uses: evanchooly/workflows/.github/workflows/build.yml@master | |
with: | |
java: 17 | |
saveBuild: true | |
Matrix: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Java | |
uses: actions/setup-java@v4 | |
with: | |
java-version: 17 | |
distribution: 'temurin' | |
server-id: central | |
cache: maven | |
- name: Setup JBang | |
uses: jbangdev/setup-jbang@main | |
- name: Find MongoDB versions | |
id: mongo-versions | |
run: | | |
echo "mongo_versions=$( jbang .github/BuildMatrix.java )" >> $GITHUB_OUTPUT | |
- name: Find Latest Driver version | |
id: latest-driver-version | |
run: | | |
echo "latest_driver_version=$( jbang .github/DriverVersions.java latest)" >> $GITHUB_OUTPUT | |
- name: Find Driver versions | |
id: driver-versions | |
run: | | |
echo "driver_versions=$( jbang .github/DriverVersions.java all)" >> $GITHUB_OUTPUT | |
- name: Is releasable branch | |
id: releasable | |
run: | | |
if [ "${{ github.event.ref }}" == 'refs/heads/master' ] \ | |
|| [ "${{ github.event.ref }}" == 'refs/heads/main' ] \ | |
|| [[ "${{ github.event.ref }}" =~ ^refs/heads/[0-9]+\.[0-9]+\.x$ ]] \ | |
|| [[ "${{ github.event.ref }}" =~ ^refs/tags/v[0-9]+\.[0-9]+.[0-9]+$ ]] | |
then | |
echo "releasable=true" >> $GITHUB_OUTPUT | |
else | |
echo "releasable=false" >> $GITHUB_OUTPUT | |
fi | |
- name: Find Driver snapshot version | |
id: driver-snapshot | |
run: | | |
echo "driver_snapshot=$( jbang .github/DriverSnapshot.java )" >> $GITHUB_OUTPUT | |
outputs: | |
driver_latest: ${{ steps.latest-driver-version.outputs.latest_driver_version }} | |
driver_matrix: ${{ steps.driver-versions.outputs.driver_versions }} | |
version_matrix: ${{ steps.mongo-versions.outputs.mongo_versions }} | |
releasable: ${{ steps.releasable.outputs.releasable }} | |
driver_snapshot: ${{ steps.driver-snapshot.outputs.driver_snapshot }} | |
ServerTests: | |
name: Server | |
needs: | |
- Build | |
- Matrix | |
strategy: | |
fail-fast: false | |
matrix: | |
mongo: ${{ fromJson(needs.matrix.outputs.version_matrix) }} | |
driver: ${{ fromJson(needs.matrix.outputs.driver_latest) }} | |
java: [ 17 ] | |
uses: evanchooly/workflows/.github/workflows/build.yml@master | |
with: | |
java: ${{ matrix.java }} | |
reuseBuild: true | |
archive-name: "${{matrix.mongo}}-${{matrix.driver}}-${{matrix.java}}-${{github.run_id}}" | |
maven-flags: "-e -Dmongodb=${{ matrix.mongo }} -Ddriver.version=${{ matrix.driver }}" | |
DriversTests: | |
name: Driver | |
needs: | |
- Build | |
- Matrix | |
strategy: | |
fail-fast: false | |
matrix: | |
driver: ${{ fromJson(needs.matrix.outputs.driver_matrix) }} | |
java: [ 17 ] | |
mongo: [ 7 ] | |
include: | |
- driver: ${{ fromJson(needs.matrix.outputs.driver_latest)[0] }} | |
java: 21 | |
mongo: 7 | |
- driver: ${{ fromJson(needs.matrix.outputs.driver_latest)[0] }} | |
java: 22 | |
mongo: 7 | |
optional: tre | |
- driver: ${{ needs.matrix.outputs.driver_snapshot }} | |
java: 17 | |
mongo: 7 | |
optional: true | |
uses: evanchooly/workflows/.github/workflows/build.yml@master | |
with: | |
java: ${{ matrix.java }} | |
reuseBuild: true | |
archive-name: "${{matrix.mongo}}-${{matrix.driver}}-${{matrix.java}}-${{github.run_id}}" | |
maven-flags: "-e -Dmongodb=${{ matrix.mongo }} -Ddriver.version=${{ matrix.driver }}" | |
optional: ${{ matrix.optional == true }} | |
Release: | |
needs: | |
- Matrix | |
- CodeAudits | |
- ServerTests | |
- DriversTests | |
if: needs.Matrix.outputs.releasable == 'true' | |
uses: evanchooly/workflows/.github/workflows/jreleaser.yml@master | |
with: | |
java: 17 | |
secrets: | |
GH_PUSH_TOKEN : ${{ secrets.GH_PUSH_TOKEN }} | |
GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }} | |
GPG_PUBLIC_KEY : ${{ secrets.GPG_PUBLIC_KEY }} | |
GPG_PRIVATE_KEY : ${{ secrets.GPG_PRIVATE_KEY }} | |
SONATYPE_USERNAME : ${{ secrets.SONATYPE_USERNAME }} | |
SONATYPE_PASSWORD : ${{ secrets.SONATYPE_PASSWORD }} | |
Docs: | |
name: Update Documentation | |
runs-on: ubuntu-latest | |
needs: | |
- Release | |
steps: | |
- name: Invoke antora build | |
uses: benc-uk/workflow-dispatch@v1 | |
with: | |
workflow: Docs | |
repo: MorphiaOrg/morphia-docs | |
token: ${{ secrets.GH_PUSH_TOKEN }} | |
ref: refs/heads/master |