summaryrefslogtreecommitdiffstats
path: root/.github/workflows/integration-tests.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/integration-tests.yml')
-rw-r--r--.github/workflows/integration-tests.yml55
1 files changed, 55 insertions, 0 deletions
diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml
new file mode 100644
index 0000000..dff8112
--- /dev/null
+++ b/.github/workflows/integration-tests.yml
@@ -0,0 +1,55 @@
+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