@@ -2,71 +2,48 @@ name: Java CI
2
2
3
3
on :
4
4
push :
5
- branches : [ main, fixup-tests ]
5
+ branches :
6
+ - main
7
+ - $default-branch
8
+ - $protected-branches
6
9
pull_request :
7
- branches : [ main ]
8
- release :
9
- types : [created]
10
+ branches :
11
+ - main
12
+ - $default-branch
13
+ workflow_dispatch :
10
14
11
15
jobs :
12
- build :
16
+ check-release-needed :
13
17
runs-on : ubuntu-latest
18
+ outputs :
19
+ release_needed : ${{ steps.create_release_needed.outputs.release_needed }}
14
20
steps :
15
- - name : Set up JDK 8
16
- uses : actions/setup-java@v3
17
- with :
18
- java-version : ' 8'
19
- distribution : ' temurin'
20
- - name : Cache
21
-
22
- with :
23
- path : |
24
- ~/.ivy2/cache/
25
- $GITHUB_WORKSPACE/josm/core/tools/
26
- key : ${{ runner.os }}-ivy2-${{ hashFiles('josm/plugins/${{ github.event.repository.name }}/build.xml', 'josm/plugins/00_core_tools/ivy.xml', 'josm/core/ivy.xml', 'josm/core/tools/ivy.xml') }}
27
- - name : Clone JOSM
28
- run : |
29
- svn co --depth=immediates https://josm.openstreetmap.de/osmsvn/applications/editors/josm $GITHUB_WORKSPACE/josm
30
- cd $GITHUB_WORKSPACE/josm
31
- svn up --set-depth=immediates plugins
32
- svn up --set-depth=infinity --accept=theirs-full core i18n plugins/{00_core_test_config,00_core_test_lib,00_core_tools,00_tools}
33
- svn propget svn:externals | grep core | xargs -L1 svn co
34
- cd core
35
- ant dist
36
- cd ../plugins
37
- svn propget svn:externals | grep 00_core | xargs -L1 svn co
38
- - uses : actions/checkout@v3
39
- with :
40
- path : josm/plugins/${{ github.event.repository.name }}
41
- - name : Build with Ant
42
- run : |
43
- cd $GITHUB_WORKSPACE/josm/plugins/${{ github.event.repository.name }}
44
- if [ $GITHUB_REF_TYPE == "tag" ]; then
45
- version=$GITHUB_REF_NAME
46
- else
47
- version="$GITHUB_REF_NAME-$GITHUB_SHA"
48
- fi
49
- ant -noinput -buildfile build.xml -Dplugin.version=$version
50
- - name : Test with Ant
51
- run : |
52
- cd $GITHUB_WORKSPACE/josm/plugins/${{ github.event.repository.name }}
53
- ant -noinput -buildfile build.xml -Dplugin.version=$version -Dtest.headless test
54
- - name : Dump errors if failed
55
- if : ${{ failure() }}
56
- run : " grep -L ', Failures: 0, Skipped: ' test/report/*.txt | xargs cat"
57
- - name : Upload Ant reports
58
- if : ${{ always() }}
59
- uses : actions/upload-artifact@v2
60
- with :
61
- name : Ant reports for JOSM plugin ${{ github.event.repository.name }}
62
- path : |
63
- $GITHUB_WORKSPACE/josm/plugins/${{ github.event.repository.name }}/test/report/*.txt
64
- $GITHUB_WORKSPACE/josm/plugins/${{ github.event.repository.name }}/test/report/TEST*.xml
65
- - name : Release
66
- uses : softprops/action-gh-release@v1
67
- if : startsWith(github.ref, 'refs/tags/')
68
- with :
69
- files : |
70
- josm/dist/${{ github.event.repository.name }}.jar
71
- josm/dist/${{ github.event.repository.name }}-javadoc.jar
72
- josm/dist/${{ github.event.repository.name }}-sources.jar
21
+ - name : Checkout
22
+ uses : actions/checkout@v4
23
+ with :
24
+ fetch-depth : ${{ (github.repository == 'JOSM/wikipedia' && github.ref_type == 'branch' && github.ref_name == 'main' && github.event_name != 'schedule' && github.event_name != 'pull_request') && '0' || '1' }}
25
+
26
+ - name : Set release needed
27
+ id : create_release_needed
28
+ run : |
29
+ last_tag=$(git describe --tags --abbrev=0 --always)
30
+ release_needed="false"
31
+ for file in $(git diff ${last_tag}..HEAD --name-only); do
32
+ if [[ $file = "src/main"* ]] || [[ $file = "" ]]; then
33
+ release_needed="true"
34
+ break
35
+ fi
36
+ done
37
+ echo "release_needed=$release_needed" >> $GITHUB_OUTPUT
38
+
39
+
40
+ call-workflow :
41
+ needs : check-release-needed
42
+ strategy :
43
+ matrix :
44
+ josm-revision : ["", "r18877"]
45
+ uses : JOSM/JOSMPluginAction/.github/workflows/ant.yml@v2
46
+ with :
47
+ josm-revision : ${{ matrix.josm-revision }}
48
+ perform-revision-tagging : ${{ matrix.josm-revision == 'r18877' && needs.check-release-needed.outputs.release_needed == 'true' }}
49
+ secrets : inherit
0 commit comments