diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 388a5fea..f3673005 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,18 @@ on: - "[0-9]+.[0-9]+.[0-9]+-adopt13" jobs: + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Run tests + run: | + tests/test.sh build: + needs: + - test runs-on: ubuntu-latest steps: diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 94d19913..16096da7 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -5,15 +5,12 @@ on: branches: [ master ] jobs: - build: + test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - name: Build Docker image - uses: docker/build-push-action@v1.1.0 - with: - tag_with_sha: true - cache_froms: itzg/minecraft-server:latest - push: false + - name: Run tests + run: | + tests/test.sh diff --git a/tests/docker-compose.test.yml b/tests/docker-compose.test.yml new file mode 100644 index 00000000..49271b76 --- /dev/null +++ b/tests/docker-compose.test.yml @@ -0,0 +1,16 @@ +version: "3.8" + +services: + sut: + depends_on: + - mc + image: itzg/mc-monitor:0.6.0 + command: status --host mc --retry-interval 1s --retry-limit 120 + mc: + build: + context: .. + cache_from: + - itzg/minecraft-server:latest + environment: + EULA: "TRUE" + diff --git a/tests/test.sh b/tests/test.sh new file mode 100755 index 00000000..2f11b894 --- /dev/null +++ b/tests/test.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +cd $(dirname $0) + +failed=false +args="-f docker-compose.test.yml" +docker-compose $args run sut || failed=true; docker-compose $args logs mc +docker-compose $args down -v + +if $failed; then + exit 1 +fi +