From 0a2fdbfd8d5026c3f8faf0274747aa6794ad1069 Mon Sep 17 00:00:00 2001 From: Hamidreza Bayat Date: Sun, 1 May 2022 19:34:11 +0430 Subject: [PATCH] Use conditions & matrix for workflow --- .github/workflows/astronomy-engine-tests.yml | 94 +++++++------------- 1 file changed, 31 insertions(+), 63 deletions(-) diff --git a/.github/workflows/astronomy-engine-tests.yml b/.github/workflows/astronomy-engine-tests.yml index 09953ff6..df3394d1 100644 --- a/.github/workflows/astronomy-engine-tests.yml +++ b/.github/workflows/astronomy-engine-tests.yml @@ -1,71 +1,15 @@ name: Astronomy Engine Unit Tests on: [push] jobs: - Astronomy-Engine-Linux: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Init dotnet core - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 6.0.x - - name: Init Python 3.7 - uses: actions/setup-python@v2 - with: - python-version: 3.7 - - name: Install Python linter - run: python -m pip install --upgrade pip && pip install pylint - - name: Install documentation tools - run: sudo apt install -y doxygen xsltproc - - name: Init Node.js 14.x - uses: actions/setup-node@v2 - with: - node-version: 14.x - - name: set up JDK 1.8 - uses: actions/setup-java@v1 - with: - java-version: 1.8 - - name: Install Kotlin Native compiler - run: generate/install_kotlin_native 'https://github.com/JetBrains/kotlin/releases/download/v1.6.20/kotlin-native-linux-x86_64-1.6.20.tar.gz' - - uses: gradle/wrapper-validation-action@v1 - - name: Test Astronomy Engine - run: cd generate && rm -f output/vsop*.txt output/*.eph output/jupiter_moons.txt && ./run && ./verify_clean - - Astronomy-Engine-Macos: - runs-on: macos-11 - steps: - - uses: actions/checkout@v2 - - name: Init dotnet core - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 6.0.x - - name: Init Python 3.7 - uses: actions/setup-python@v2 - with: - python-version: 3.7 - - name: Install Python linter - run: python -m pip install --upgrade pip && pip install pylint - - name: Install documentation tools - run: HOMEBREW_NO_AUTO_UPDATE=1 brew install doxygen - - name: Init Node.js 14.x - uses: actions/setup-node@v2 - with: - node-version: 14.x - - name: set up JDK 1.8 - uses: actions/setup-java@v1 - with: - java-version: 1.8 - - name: Install Kotlin Native compiler - run: generate/install_kotlin_native 'https://github.com/JetBrains/kotlin/releases/download/v1.6.20/kotlin-native-macos-x86_64-1.6.20.tar.gz' - - uses: gradle/wrapper-validation-action@v1 - - name: Test Astronomy Engine - run: cd generate && rm -f output/vsop*.txt output/*.eph output/jupiter_moons.txt && ./run && ./verify_clean - - Astronomy-Engine-Windows: - runs-on: windows-latest + Astronomy-Engine: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ ubuntu-latest, macos-11, windows-latest ] steps: - uses: actions/checkout@v2 - name: Add msbuild to path + if: startsWith(matrix.os, 'windows') uses: microsoft/setup-msbuild@v1.1 - name: Init dotnet core uses: actions/setup-dotnet@v1 @@ -75,6 +19,14 @@ jobs: uses: actions/setup-python@v2 with: python-version: 3.7 + - name: Install Python linter + run: python -m pip install --upgrade pip && pip install pylint + - name: Install documentation tools Linux + if: startsWith(matrix.os, 'ubuntu') + run: sudo apt install -y doxygen xsltproc + - name: Install documentation tools macOs + if: startsWith(matrix.os, 'macOS') + run: HOMEBREW_NO_AUTO_UPDATE=1 brew install doxygen - name: Init Node.js 14.x uses: actions/setup-node@v2 with: @@ -83,7 +35,23 @@ jobs: uses: actions/setup-java@v1 with: java-version: 1.8 + - name: Install Kotlin Native compiler Linux + if: startsWith(matrix.os, 'ubuntu') + run: generate/install_kotlin_native 'https://github.com/JetBrains/kotlin/releases/download/v1.6.20/kotlin-native-linux-x86_64-1.6.20.tar.gz' - uses: gradle/wrapper-validation-action@v1 - - name: Test Astronomy Engine + - name: Test Astronomy Engine Linux + if: startsWith(matrix.os, 'ubuntu') + run: cd generate && rm -f output/vsop*.txt output/*.eph output/jupiter_moons.txt && ./run && ./verify_clean + + - name: Install Kotlin Native compiler macOs + if: startsWith(matrix.os, 'macOS') + run: generate/install_kotlin_native 'https://github.com/JetBrains/kotlin/releases/download/v1.6.20/kotlin-native-macos-x86_64-1.6.20.tar.gz' + - uses: gradle/wrapper-validation-action@v1 + - name: Test Astronomy Engine macOs + if: startsWith(matrix.os, 'macOS') + run: cd generate && rm -f output/vsop*.txt output/*.eph output/jupiter_moons.txt && ./run && ./verify_clean + + - name: Test Astronomy Engine Windows + if: startsWith(matrix.os, 'windows') shell: cmd run: call generate\commit_hook.bat