name: Integration Tests on: push: branches: - master pull_request: {} schedule: - cron: '57 3 * * *' jobs: integration-tests: strategy: fail-fast: false matrix: database: - name: mysql pretty_name: MySQL - name: pgsql pretty_name: PostgreSQL name: ${{ matrix.database.pretty_name }} runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Setup Go uses: actions/setup-go@v2 with: go-version: '^1.18' - name: Build Icinga DB run: go build ./cmd/icingadb env: CGO_ENABLED: 0 - name: Build Integration Tests run: go test -o ../icingadb-test -c . working-directory: tests/ - name: Run Integration Tests run: ./icingadb-test -icingatesting.debuglog debug.log -test.v env: ICINGADB_TESTS_DATABASE_TYPE: ${{ matrix.database.name }} ICINGA_TESTING_ICINGADB_BINARY: ${{ github.workspace }}/icingadb ICINGA_TESTING_ICINGADB_SCHEMA_MYSQL: ${{ github.workspace }}/schema/mysql/schema.sql ICINGA_TESTING_ICINGADB_SCHEMA_PGSQL: ${{ github.workspace }}/schema/pgsql/schema.sql - name: Compress Debug Log if: ${{ always() }} run: xz -9 debug.log - name: Upload Debug Log if: ${{ always() }} uses: actions/upload-artifact@v2 with: name: ${{ matrix.database.name }}-debug.log.xz path: debug.log.xz retention-days: 1