Define the "tls.certresolver" in the global config #58
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: [ "master" ] | |
pull_request: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
env: | |
HOSTNAME: "foo.bar.local" | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Start the traefik container | |
run: | | |
set -x | |
docker-compose -f docker-compose.yml -f tests/docker-compose.yml pull --quiet | |
docker network create public-network | |
# make sure the letsencrypt directory is writable by the container | |
sudo chown nobody:nogroup letsencrypt/ | |
LOG_LEVEL=DEBUG HOSTNAME=${HOSTNAME} \ | |
docker-compose up -d | |
sleep 2 | |
docker ps | |
- name: Get some Traefik details | |
run: | | |
set -x | |
docker inspect traefik | jq .[].Config.Labels | grep 'org.opencontainers' | |
docker exec traefik whoami | grep nobody | |
# https://doc.traefik.io/traefik/operations/api/ | |
curl -s 127.0.0.1:58888/api/http/routers | jq -r '.[] | .service' | sort | |
curl -s 127.0.0.1:58888/api/http/middlewares | jq -r .[].name | sort | |
curl -s 127.0.0.1:58888/api/overview | jq .http | |
curl -s 127.0.0.1:58888/metrics | grep traefik_config_reloads_total | |
- name: Start nginx container | |
run: | | |
set -x | |
cd tests/ | |
docker-compose up -d | |
sleep 5 | |
docker ps | |
curl -svo /dev/null 0:5555/foo | |
- name: Make sure that the nginx has been discovered by Traefik | |
run: | | |
set -x | |
curl -s 127.0.0.1:58888/api/http/routers | jq -r '.[] | .service' | grep nginx | |
curl -s 127.0.0.1:58888/api/http/services | jq . | |
- name: Requests routing by the domain | |
run: | | |
set -x | |
curl --resolve nginx.foo.bar:80:127.0.0.1 nginx.foo.bar -sI | tee /dev/stderr | grep -i 'location: https://' | |
curl --resolve nginx.foo.bar:443:127.0.0.1 https://nginx.foo.bar/ --insecure -sI | tee /dev/stderr | grep "200" | |
# request /whoami service | |
curl https://localhost/whoami -H "Host: ${HOSTNAME}" --insecure -v 2>&1 | grep x-served-by | |
# Prometheus metrics are collected for this service | |
curl 127.0.0.1:58888/metrics -s | grep 'nginx@docker' | grep service_request | |
# Prometheus metrics exposed at /traefik/metrics | |
curl https://localhost/traefik/metrics -H "Host: ${HOSTNAME}" --insecure 2>&1 | grep traefik_ | |
- name: Show logs | |
if: ${{ always() }} # run this step regardless of the tests failing or passing | |
run: | | |
set -x | |
docker ps | |
docker logs traefik | |
docker logs nginx |