on: [push, pull_request] name: Run Tests jobs: test-e2e: strategy: matrix: os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - name: Install Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.go-version }} - name: Checkout Code uses: actions/checkout@v2 - name: JS Dependency Cache uses: actions/cache@v2 with: path: | **/node_modules ~/.cache/Cypress key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-modules- # It seems faster not to cache Go dependencies - name: Install JS Dependencies run: make deps-js - name: Install Go Dependencies run: make deps-go # Pre-starting dependencies here means they are ready to go when we need them. - name: Start Infra Dependencies # Use & to background this run: docker-compose up -d mysql_test redis mailhog saml_idp & - name: Build Fleet run: | export PATH=$PATH:~/go/bin make generate make - name: Run E2E Tests run: | make e2e-reset-db make e2e-serve & sleep 3 make e2e-setup yarn cypress run --config video=false test-js: strategy: matrix: os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - name: Checkout Code uses: actions/checkout@v2 - name: JS Dependency Cache uses: actions/cache@v2 with: path: | **/node_modules ~/.cache/Cypress key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-modules- - name: Install JS Dependencies run: make deps-js - name: Run JS Tests run: | make test-js lint-js: strategy: matrix: os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - name: Checkout Code uses: actions/checkout@v2 - name: JS Dependency Cache uses: actions/cache@v2 with: path: | **/node_modules ~/.cache/Cypress key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-modules- - name: Install JS Dependencies run: make deps-js - name: Run JS Linting run: | make lint-js check-prettier: strategy: matrix: os: [ ubuntu-latest ] runs-on: ${{ matrix.os }} steps: - name: Checkout Code uses: actions/checkout@v2 - name: JS Dependency Cache uses: actions/cache@v2 with: path: | **/node_modules ~/.cache/Cypress key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-modules- - name: Install JS Dependencies run: make deps-js - name: Run prettier formatting check run: | yarn prettier:check test-go: strategy: matrix: os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - name: Install Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.go-version }} - name: Checkout Code uses: actions/checkout@v2 # Pre-starting dependencies here means they are ready to go when we need them. - name: Start Infra Dependencies # Use & to background this run: docker-compose up -d mysql_test redis & # It seems faster not to cache Go dependencies - name: Install Go Dependencies run: make deps-go - name: Generate static files run: | export PATH=$PATH:~/go/bin make generate-go - name: Run Go Tests run: | MYSQL_TEST=1 REDIS_TEST=1 make test-go lint-go: strategy: matrix: os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - name: Install Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.go-version }} - name: Checkout Code uses: actions/checkout@v2 - name: Run Go Linting run: | make lint-go