name: Stability Tests on: push: branches: [ main, master ] pull_request: branches: [ main, master ] schedule: - cron: '0 0 * * 0' # Runs weekly at Sunday midnight jobs: stability-tests: name: Stability Tests runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] go-version: ['1.19', '1.20'] include: - os: ubuntu-latest go-version: '1.20' run-long-tests: true steps: - name: Checkout uses: actions/checkout@v3 - name: Install Go ${{ matrix.go-version }} uses: actions/setup-go@v3 with: go-version: ${{ matrix.go-version }} - name: Display Go Version run: go version - name: Install Dependencies run: go mod download - name: Run Basic Tests run: go test -v -race - name: Run Concurrent Load Test if: ${{ matrix.run-long-tests }} run: go test -v -run TestConcurrentLoad -timeout 30m - name: Run Fault Tolerance Test if: ${{ matrix.run-long-tests }} run: go test -v -run TestFaultTolerance -timeout 10m - name: Run Resource Constraints Test if: ${{ matrix.run-long-tests }} run: go test -v -run TestResourceConstraints -timeout 20m - name: Run Long-term Stability Test if: ${{ matrix.run-long-tests }} run: go test -v -run TestLongRunningStability -timeout 20m - name: Run Benchmark Tests if: ${{ matrix.run-long-tests }} run: go test -bench=. -benchmem -timeout 30m