diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..005d247 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,24 @@ +on: push +name: Tests +jobs: + local-setup: + runs-on: ubuntu-latest + steps: + - name: 'Checkout code' + uses: actions/checkout@v4 + - name: 'Setup Docker' + uses: docker-practice/actions-setup-docker@master + - name: 'Add hosts to /etc/hosts' + run: | + sudo echo "127.0.0.1 reverse-proxy.test" | sudo tee -a /etc/hosts + sudo echo "127.0.0.1 hello-world.test" | sudo tee -a /etc/hosts + - name: 'Copy configuration files' + run: cp -r configs-local configs + - name: 'Start reverse proxy with local setup' + run: docker-compose -f docker-compose.local.yml up -d && sleep 10 + - name: 'Test dashboard' + run: curl http://reverse-proxy.test/dashboard/#/ + - name: 'Start hello-world example' + run: cd examples && docker-compose -f docker-compose.local.yml up -d + - name: 'Test hello-world' + run: curl http://hello-world.test diff --git a/examples/docker-compose.local.yml b/examples/docker-compose.local.yml new file mode 100644 index 0000000..57bd67c --- /dev/null +++ b/examples/docker-compose.local.yml @@ -0,0 +1,19 @@ +version: '3.8' +services: + hello-world: + image: nginx + labels: + - "traefik.enable=true" + - "traefik.docker.network=reverse-proxy-docker-traefik_routing" + - "traefik.http.routers.test.rule=Host(`hello-world.test`)" + - "traefik.http.routers.test.entrypoints=web" + - "traefik.http.services.test.loadbalancer.server.port=80" + - "traefik.http.routers.test-https.rule=Host(`hello-world.test`)" + - "traefik.http.routers.test-https.entrypoints=websecure" + - "traefik.http.routers.test-https.tls=true" + networks: + - reverse-proxy +networks: + reverse-proxy: + name: reverse-proxy-docker-traefik_routing + external: true