From b6c16313b87026159ce9ec8ff9d2765b592faeca Mon Sep 17 00:00:00 2001 From: baunsgaard Date: Mon, 1 Nov 2021 16:36:19 +0100 Subject: [PATCH 1/4] [MINOR] Update github actions to use JAVA 11 --- .github/workflows/build.yml | 5 +++-- .github/workflows/componentTests.yml | 7 ++++--- .github/workflows/documentation.yml | 7 ++++--- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4fe60b6e086..d07460a9484 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -57,9 +57,10 @@ jobs: uses: actions/checkout@v2 - name: Setup Java 11 - uses: actions/setup-java@v1 + uses: actions/setup-java@v2 with: - java-version: 11 + distribution: 'adopt' + java-version: '11' - name: Cache Maven Dependencies uses: actions/cache@v1 diff --git a/.github/workflows/componentTests.yml b/.github/workflows/componentTests.yml index 276a27804f9..938347b358f 100644 --- a/.github/workflows/componentTests.yml +++ b/.github/workflows/componentTests.yml @@ -53,10 +53,11 @@ jobs: - name: Checkout Repository uses: actions/checkout@v2 - - name: Setup Java 1.8 - uses: actions/setup-java@v1 + - name: Setup Java 11 + uses: actions/setup-java@v2 with: - java-version: 1.8 + distribution: 'adopt' + java-version: '11' - name: Cache Maven Dependencies uses: actions/cache@v1 diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 848224c0dec..9e18250e060 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -43,10 +43,11 @@ jobs: - name: Checkout Repository uses: actions/checkout@v2 - - name: Setup Java 1.8 - uses: actions/setup-java@v1 + - name: Setup Java 11 + uses: actions/setup-java@v2 with: - java-version: 1.8 + distribution: 'adopt' + java-version: '11' - name: Cache Maven Dependencies uses: actions/cache@v1 From 2236b67219ce460052d5e73ad73fe1d1ac59b281 Mon Sep 17 00:00:00 2001 From: baunsgaard Date: Mon, 1 Nov 2021 16:27:23 +0100 Subject: [PATCH 2/4] [MINOR] Add language level target maven argument Adding argument to specify compiled java target and source. when compiling simply add '-D java.level=11' ex: 'mvn package -P distribution -D java.level=11' If you want to switch between versions remember to do 'mvn clean' It is worth noting that you currently can compile with java 11 and run with java 8 if you compile in level '1.8'. --- pom.xml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 10d807f1d61..19510018b4c 100644 --- a/pom.xml +++ b/pom.xml @@ -48,6 +48,8 @@ false provided 10.2.0 + + 1.8 Testing settings true 2 @@ -234,8 +236,8 @@ maven-compiler-plugin 3.8.1 - 1.8 - 1.8 + ${java.level} + ${java.level} @@ -365,7 +367,7 @@ org.jacoco jacoco-maven-plugin - 0.8.5 + 0.8.7 ${jacoco.include} @@ -400,8 +402,8 @@ 3.2.0 true + true - 8 @@ -744,6 +746,7 @@ true false public + ${java.level} From 7ab4d7e1e765c1b4e6e429c760b7d337e4d1cde1 Mon Sep 17 00:00:00 2001 From: baunsgaard Date: Mon, 1 Nov 2021 17:31:22 +0100 Subject: [PATCH 3/4] [MINOR] Add build java versions to test --- .github/workflows/build.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d07460a9484..ff37448531a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -49,18 +49,20 @@ jobs: matrix: os: [ ubuntu-latest, - # macOS-latest, + macOS-latest, windows-latest ] + java: ['1.8', '11', '16'] + javadist: ['adopt', 'adopt-openj9', 'zulu', 'temurin'] steps: - name: Checkout Repository uses: actions/checkout@v2 - - name: Setup Java 11 + - name: Setup Java ${{ matrix.java }} ${{ matrix.javadist }} uses: actions/setup-java@v2 with: - distribution: 'adopt' - java-version: '11' + distribution: ${{ matrix.javadist }} + java-version: ${{ matrix.java }} - name: Cache Maven Dependencies uses: actions/cache@v1 From f6509c3f99d32c931d484264879ce4ffed71ab23 Mon Sep 17 00:00:00 2001 From: baunsgaard Date: Mon, 1 Nov 2021 17:33:07 +0100 Subject: [PATCH 4/4] [MINOR] Update github actions to use new packages This commit update the java, cache and python dependency to use version 2 of each. This promise faster github actions. Also contained in this commit, i updated the build to test MacOS. --- .github/workflows/applicationTests.yml | 6 +-- .github/workflows/build.yml | 25 +++++----- .github/workflows/componentTests.yml | 21 +++----- .github/workflows/documentation.yml | 33 ++++++------- .github/workflows/functionsTests.yml | 6 +-- .github/workflows/license.yml | 67 ++++++++++++++++++++++++++ .github/workflows/python.yml | 44 ++++++++--------- 7 files changed, 130 insertions(+), 72 deletions(-) create mode 100644 .github/workflows/license.yml diff --git a/.github/workflows/applicationTests.yml b/.github/workflows/applicationTests.yml index d1fdcb80b10..8eecde60850 100644 --- a/.github/workflows/applicationTests.yml +++ b/.github/workflows/applicationTests.yml @@ -42,19 +42,19 @@ on: - main jobs: - applicationsTests: + test: + name: ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest] - name: Ap Test ${{ matrix.tests }} steps: - name: Checkout Repository uses: actions/checkout@v2 - name: Cache Maven Dependencies - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-test-${{ hashFiles('**/pom.xml') }} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ff37448531a..82f52f09a31 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,6 +43,7 @@ on: jobs: build: + name: ${{ matrix.os }} Java ${{ matrix.java }} ${{ matrix.javadist }} runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -52,8 +53,17 @@ jobs: macOS-latest, windows-latest ] - java: ['1.8', '11', '16'] - javadist: ['adopt', 'adopt-openj9', 'zulu', 'temurin'] + java: [ + # '8', + '11', + # '16' + ] + javadist: [ + # 'adopt', + 'adopt-openj9', + # 'zulu', + # 'temurin' + ] steps: - name: Checkout Repository uses: actions/checkout@v2 @@ -63,14 +73,7 @@ jobs: with: distribution: ${{ matrix.javadist }} java-version: ${{ matrix.java }} - - - name: Cache Maven Dependencies - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- + cache: 'maven' - name: Build - run: mvn package -P rat + run: mvn package diff --git a/.github/workflows/componentTests.yml b/.github/workflows/componentTests.yml index 938347b358f..2e99d08cae8 100644 --- a/.github/workflows/componentTests.yml +++ b/.github/workflows/componentTests.yml @@ -42,30 +42,25 @@ on: - main jobs: - componentTests: + test: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest] - name: Component Tests ${{ matrix.os }} + java: ['11'] + javadist: ['adopt-openj9'] + name: ${{ matrix.os }} steps: - name: Checkout Repository uses: actions/checkout@v2 - - name: Setup Java 11 + - name: Setup Java ${{ matrix.java }} ${{ matrix.javadist }} uses: actions/setup-java@v2 with: - distribution: 'adopt' - java-version: '11' - - - name: Cache Maven Dependencies - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-test-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-test- + distribution: ${{ matrix.javadist }} + java-version: ${{ matrix.java }} + cache: 'maven' - name: Component Tests run: ./docker/entrypoint.sh org.apache.sysds.test.component.** diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 9e18250e060..57fb1f23f61 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -36,33 +36,32 @@ on: - main jobs: - documentation1: - runs-on: ubuntu-latest - name: Documentation Java + doc1: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + java: ['11'] + javadist: ['adopt-openj9'] + name: Java steps: - name: Checkout Repository uses: actions/checkout@v2 - - name: Setup Java 11 + - name: Setup Java ${{ matrix.java }} ${{ matrix.javadist }} uses: actions/setup-java@v2 with: - distribution: 'adopt' - java-version: '11' - - - name: Cache Maven Dependencies - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- + distribution: ${{ matrix.javadist }} + java-version: ${{ matrix.java }} + cache: 'maven' - name: Make Documentation SystemDS Java run: mvn -ntp -P distribution package - documentation2: + doc2: runs-on: ubuntu-latest - name: Documentation Python + name: Python steps: - name: Checkout Repository uses: actions/checkout@v2 @@ -74,7 +73,7 @@ jobs: architecture: 'x64' - name: Cache Pip Dependencies - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-docs-${{ hashFiles('src/main/python/docs/requires-docs.txt') }} diff --git a/.github/workflows/functionsTests.yml b/.github/workflows/functionsTests.yml index ae9a1cd9f5b..b2b2ef61241 100644 --- a/.github/workflows/functionsTests.yml +++ b/.github/workflows/functionsTests.yml @@ -42,7 +42,7 @@ on: - main jobs: - applicationsTests: + test: runs-on: ${{ matrix.os }} timeout-minutes: 90 strategy: @@ -65,13 +65,13 @@ jobs: "**.functions.unary.matrix.**" ] os: [ubuntu-latest] - name: Function Test ${{ matrix.tests }} + name: ${{ matrix.tests }} steps: - name: Checkout Repository uses: actions/checkout@v2 - name: Cache Maven Dependencies - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-test-${{ hashFiles('**/pom.xml') }} diff --git a/.github/workflows/license.yml b/.github/workflows/license.yml new file mode 100644 index 00000000000..c1402f5b519 --- /dev/null +++ b/.github/workflows/license.yml @@ -0,0 +1,67 @@ +#------------------------------------------------------------- +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +#------------------------------------------------------------- + +name: LicenseCheck + +on: + push: + paths-ignore: + - 'docs/**' + - '*.md' + - '*.html' + - 'src/main/python/docs/**' + - 'dev/**' + branches: + - main + pull_request: + paths-ignore: + - 'docs/**' + - '*.md' + - '*.html' + - 'src/main/python/docs/**' + - 'dev/**' + branches: + - main + +jobs: + build: + name: ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + java: ['11'] + javadist: ['adopt-openj9'] + + steps: + - name: Checkout Repository + uses: actions/checkout@v2 + + - name: Setup Java ${{ matrix.java }} ${{ matrix.javadist }} + uses: actions/setup-java@v2 + with: + distribution: ${{ matrix.javadist }} + java-version: ${{ matrix.java }} + cache: 'maven' + + - name: Build + run: mvn package -P rat diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 5106063063b..5cbd5aba18f 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -42,50 +42,44 @@ on: - main jobs: - applicationsTests: + test: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: python-version: [3.8] os: [ubuntu-latest] - java: [ 11 ] - name: Python Test + java: ['11'] + javadist: ['adopt-openj9'] + + name: ${{ matrix.os }} Java ${{ matrix.java }} ${{ matrix.javadist }} Python ${{ matrix.python-version }} steps: - name: Checkout Repository uses: actions/checkout@v2 - - name: Setup Java - uses: actions/setup-java@v1 + - name: Setup Java ${{ matrix.java }} ${{ matrix.javadist }} + uses: actions/setup-java@v2 with: + distribution: ${{ matrix.javadist }} java-version: ${{ matrix.java }} - - - name: Cache Maven Dependencies - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + cache: 'maven' - name: Cache Pip Dependencies - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('src/main/python/setup.py') }} - - name: Cache MNIST - uses: actions/cache@v1 - with: - path: src/main/python/systemds/examples/tutorials/mnist - key: ${{ runner.os }}-mnist-${{ hashFiles('src/main/python/systemds/examples/tutorials/mnist.py') }} - - - name: Cache Adult/Census - uses: actions/cache@v1 + - name: Cache Datasets + uses: actions/cache@v2 with: - path: src/main/python/systemds/examples/tutorials/adult/data.zip - key: ${{ runner.os }}-adult-${{ hashFiles('src/main/python/systemds/examples/tutorials/adult.py') }} + path: | + src/main/python/systemds/examples/tutorials/mnist + src/main/python/systemds/examples/tutorials/adult/data.zip + key: ${{ runner.os }}-mnist-${{ hashFiles('src/main/python/systemds/examples/tutorials/mnist.py') }}-${{ hashFiles('src/main/python/systemds/examples/tutorials/adult.py') }} - name: Cache Deb Dependencies - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: /var/cache/apt/archives key: ${{ runner.os }}-${{ hashFiles('.github/workflows/python.yml') }} @@ -93,8 +87,8 @@ jobs: - name: Maven clean & package run: mvn -ntp clean package -P distribution - - name: Setup Python - uses: actions/setup-python@v1 + - name: Setup Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} architecture: 'x64'