source: josm/trunk/.github/workflows/ant-test.yml

Last change on this file was 19030, checked in by taylor.smock, 2 weeks ago

Fix #21533, see #23600: Native Apple Silicon Support

When building on macOS, the macos-jpackage.sh script now takes two arguments:

  1. The JOSM revision
  2. An additional JDK to build against (this should be of a different architecture)

If an additional JDK is specified, it is assumed that it is a different
architecture, and the two built apps are combined using lipo for a universal binary.

ant.yml does have some changes to make it easier to debug packaging issues in
PRs; the PR does still need to upload the specific package and add its branch to
the triggers.

File size: 2.4 KB
Line 
1name: Java CI Test
2env:
3 junit_platform_version: '1.9.3'
4on:
5 - push
6 - pull_request
7
8defaults:
9 run:
10 shell: bash
11
12jobs:
13
14 test:
15 runs-on: ${{ matrix.os }}
16 env:
17 LANG: en_US.UTF-8
18 strategy:
19 fail-fast: false
20 matrix:
21 # test against latest update of each major Java version, as well as specific updates of LTS versions:
22 java: [8, 11, 17, 21, 22]
23 os: [ubuntu-latest, macos-latest, windows-latest]
24 name: Java ${{ matrix.java }} on ${{ matrix.os }}
25 steps:
26 - name: Checkout
27 uses: actions/checkout@v4
28 with:
29 fetch-depth: 256
30
31 - name: Cache
32 uses: actions/cache@v4
33 with:
34 path: |
35 ~/.ivy2/cache/
36 ~/work/josm/josm/tools/
37 key: ${{ runner.os }}-ivy2-${{ hashFiles('build.xml', 'ivy.xml', 'tools/ivy.xml') }}
38
39 - name: Setup Java ${{ matrix.java }}
40 uses: actions/setup-java@v4
41 with:
42 distribution: 'zulu'
43 java-version: ${{ matrix.java }}
44
45 - name: Install Ant
46 uses: JOSM/JOSMPluginAction/actions/setup-ant@v2
47
48 - name: Test with Ant
49 run: |
50 ANT="ant -DnoJavaFX=true test-unit-hardfail"
51 $ANT -Dtest.headless=true
52
53 - name: Dump errors if failed
54 if: ${{ failure() }}
55 run: "grep -L ', Failures: 0, Skipped: ' test/report/*.txt | xargs cat"
56
57 - name: Upload Ant reports
58 if: ${{ always() }}
59 uses: actions/upload-artifact@v4
60 with:
61 name: Ant reports for JOSM ${{ needs.createrelease.outputs.josm_revision }} on java ${{ matrix.java }} on ${{ matrix.os }}
62 path: |
63 test/report/*.txt
64 test/report/TEST*.xml
65 hs_err*
66
67 publish-test-results:
68 name: "Publish Unit Tests Results"
69 needs: test
70 runs-on: ubuntu-latest
71 # the test job might be skipped, we don't need to run this job then
72 if: success() || failure()
73
74 steps:
75 - name: Download Artifacts
76 uses: actions/download-artifact@v4
77 with:
78 path: artifacts
79
80 - name: Publish Test Report with action-junit-report
81 if: ${{ always() }}
82 uses: mikepenz/action-junit-report@v4
83 with:
84 report_paths: 'artifacts/**/*.xml'
85 token: ${{ secrets.GITHUB_TOKEN }}
86
87 - name: Publish Test Report with publish-unit-test-result-action
88 uses: EnricoMi/publish-unit-test-result-action@v2
89 with:
90 files: 'artifacts/**/*.xml'
Note: See TracBrowser for help on using the repository browser.