Skip to content

Commit

Permalink
Create test-ci.yml (#100)
Browse files Browse the repository at this point in the history
  • Loading branch information
TalZaccai authored Mar 22, 2024
1 parent 27cd11d commit 3258aa2
Showing 1 changed file with 132 additions and 0 deletions.
132 changes: 132 additions & 0 deletions .github/workflows/test-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
name: Garnet .NET CI - Test
on:
workflow_dispatch:

env:
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true

jobs:
changes:
name: Check Tsavorite and Website changed
runs-on: ubuntu-latest # don't need matrix to test where the changes were made in code
permissions:
pull-requests: read
contents: read
outputs:
tsavorite: ${{ steps.filter.outputs.tsavorite }}
website: ${{ steps.filter.outputs.website }}
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Check if Tsavorite changed
uses: dorny/paths-filter@v3
id: filter
with:
filters: |
tsavorite:
- 'libs/storage/Tsavorite/**'
website:
- 'website/**'
# Job to build and test Garnet code
build-test-garnet:
name: Garnet - Build and Test
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
matrix:
os: [ ubuntu-latest, windows-latest ]
framework: [ 'net6.0', 'net8.0' ]
configuration: ['Release', 'Debug']
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Install dependencies
run: dotnet restore
- name: Format
run: dotnet format --verify-no-changes --verbosity diagnostic
- name: Build Garnet
run: dotnet build -c ${{ matrix.configuration }}
- name: Test Garnet
run: dotnet test -f ${{ matrix.framework }} --logger "console;verbosity=detailed" --logger trx --results-directory "GarnetTestResults-${{ matrix.os }}-${{ matrix.framework }}"
- name: Upload test results
uses: actions/upload-artifact@v4
with:
name: dotnet-garnet-results-${{ matrix.os }}-${{ matrix.framework }}
path: GarnetTestResults-${{ matrix.os }}-${{ matrix.framework }}
if: ${{ always() }}

# Job to build and test Tsavorite code (only if there were changes to it)
build-test-tsavorite:
name: Tsavorite - Build and Test
needs: changes
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
matrix:
os: [ ubuntu-latest, windows-latest ]
framework: [ 'net6.0', 'net8.0' ]
configuration: ['Release', 'Debug']
if: needs.changes.outputs.tsavorite == 'true'
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set environment variable for Linux
run: echo "RunAzureTests=yes" >> $GITHUB_ENV
if: ${{ matrix.os == 'ubuntu-latest' }}
- name: Set environment variable for Windows
run: echo ("RunAzureTests=yes") >> $env:GITHUB_ENV
if: ${{ matrix.os == 'windows-latest' }}
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Setup Node.js for Azurite
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install and Run Azurite
shell: bash
run: |
npm install -g azurite
azurite &
- name: Install dependencies
run: dotnet restore
- name: Format
run: dotnet format --verify-no-changes --verbosity diagnostic
- name: Build Tsavorite
run: dotnet build libs/storage/Tsavorite/cs/test/Tsavorite.test.csproj -c ${{ matrix.configuration }}
- name: Test Tsavorite
run: dotnet test libs/storage/Tsavorite/cs/test/Tsavorite.test.csproj -f ${{ matrix.framework }} --logger "console;verbosity=detailed" --logger trx --results-directory "TsavoriteTestResults-${{ matrix.os }}-${{ matrix.framework }}"
- name: Upload test results
uses: actions/upload-artifact@v4
with:
name: dotnet-tsavorite-results-${{ matrix.os }}-${{ matrix.framework }}
path: TsavoriteTestResults-${{ matrix.os }}-${{ matrix.framework }}
if: ${{ always() }}

build-website:
name: Build Website
needs: changes
runs-on: ubuntu-latest
defaults:
run:
working-directory: website
if: needs.changes.outputs.website == 'true'
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
cache: yarn
cache-dependency-path: ./website/yarn.lock
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Build website
run: yarn build

0 comments on commit 3258aa2

Please sign in to comment.