diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 2a04338..a6fab49 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -6,34 +6,64 @@ on: pull_request: branches: [ main ] - jobs: - build-and-test-linux: + test: + + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest] - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + + # SETUP .NET - name: Setup .NET - uses: actions/setup-dotnet@v1 + uses: actions/setup-dotnet@v3 with: dotnet-version: 6.x.x - - name: make script executable - run: chmod u+x build.sh - - name: Build and test - working-directory: ./ - run: ./build.sh runtests + - name: Restore fable + run: dotnet tool restore - build-and-test-windows: - - runs-on: windows-latest + # SETUP NODE + - name: Setup Node.js environment + uses: actions/setup-node@v3 + with: + node-version: 16 + - name: install node modules + working-directory: ./ + run: npm install --ignore-scripts - steps: - - uses: actions/checkout@v2 - - name: Setup .NET - uses: actions/setup-dotnet@v1 + # SETUP PYTHON + - name: Setup Python + uses: actions/setup-python@v5 with: - dotnet-version: 6.x.x - - name: Build and test + python-version: '3.11' + - name: Setup Virtual Environment + run: python -m venv .venv + - name: Setup Poetry Windows + if: matrix.os == 'windows-latest' + run: | + .\.venv\Scripts\python.exe -m pip install -U pip setuptools + .\.venv\Scripts\python.exe -m pip install poetry + .\.venv\Scripts\python.exe -m poetry install --no-root + - name: Setup Poetry Unix + if: matrix.os == 'ubuntu-latest' + run: | + ./.venv/bin/python -m pip install -U pip setuptools + ./.venv/bin/python -m pip install poetry + ./.venv/bin/python -m poetry install --no-root + + # BUILD + - name: make script executable + if: matrix.os == 'ubuntu-latest' + run: chmod u+x build.sh + - name: Test (Unix) + if: matrix.os == 'ubuntu-latest' working-directory: ./ - run: ./build.cmd runtests \ No newline at end of file + run: ./build.sh runtests + - name: Test (Windows) + if: matrix.os == 'windows-latest' + run: .\build.cmd runtests \ No newline at end of file