diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index 3eab76aa..86d6f1ee 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -1,4 +1,4 @@ -name: Debian +name: Build Debian package on: workflow_dispatch: diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 47e1127c..1d8c14e7 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -1,4 +1,4 @@ -name: Docker +name: Build Docker image on: push: @@ -13,59 +13,6 @@ env: jobs: - test: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - with: - submodules: true - fetch-depth: 1 - - # TODO: as of 2020-11 this helper layer broke, upgrade and re-enable this once it's usable again - # - uses: satackey/action-docker-layer-caching@v0.0.8 - - - name: Build image - run: | - docker build . -t "$DOCKER_IMAGE" - - - name: Init data dir - run: | - mkdir data - docker run -v "$PWD"/data:/data "$DOCKER_IMAGE" init - - - name: Run test server - run: | - sudo bash -c 'echo "127.0.0.1 www.test-nginx-1.local www.test-nginx-2.local" >> /etc/hosts' - docker run --name www-nginx -p 80:80 -d nginx - - - name: Add link - run: | - docker run -v "$PWD"/data:/data --network host "$DOCKER_IMAGE" add http://www.test-nginx-1.local - - - name: Add stdin link - run: | - echo "http://www.test-nginx-2.local" | docker run -i --network host -v "$PWD"/data:/data "$DOCKER_IMAGE" add - - - name: List links - run: | - docker run -v "$PWD"/data:/data "$DOCKER_IMAGE" list | grep -q "www.test-nginx-1.local" || { echo "The site 1 isn't in the list"; exit 1; } - docker run -v "$PWD"/data:/data "$DOCKER_IMAGE" list | grep -q "www.test-nginx-2.local" || { echo "The site 2 isn't in the list"; exit 1; } - - - name: Start docker-compose stack - run: | - docker-compose run archivebox init - docker-compose up -d - sleep 5 - curl --silent --location 'http://127.0.0.1:8000' | grep 'ArchiveBox' - curl --silent --location 'http://127.0.0.1:8000/static/admin/js/jquery.init.js' | grep 'window.django' - - - name: Check added urls show up in index - run: | - docker-compose run archivebox add 'http://example.com/#test_docker' --index-only - curl --silent --location 'http://127.0.0.1:8000' | grep 'http://example.com/#test_docker' - docker-compose down || true - buildx: runs-on: ubuntu-latest steps: diff --git a/.github/workflows/homebrew.yml b/.github/workflows/homebrew.yml index 0c2fdecd..e5e71420 100644 --- a/.github/workflows/homebrew.yml +++ b/.github/workflows/homebrew.yml @@ -1,4 +1,4 @@ -name: Homebrew +name: Build Homebrew package on: workflow_dispatch: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 06b4f6c3..c4479c4b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,4 +1,4 @@ -name: Lint +name: Run linters on: workflow_dispatch: diff --git a/.github/workflows/pip.yml b/.github/workflows/pip.yml index 2b84525a..915ebfd1 100644 --- a/.github/workflows/pip.yml +++ b/.github/workflows/pip.yml @@ -1,4 +1,4 @@ -name: Pip +name: Build pip package on: workflow_dispatch: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b4ac6bb6..b73c9e89 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,8 +1,11 @@ -name: 'Test' +name: Run tests on: [push] +env: + DOCKER_IMAGE: archivebox-ci + jobs: - pytest: + python_tests: runs-on: ${{ matrix.os }} strategy: @@ -80,3 +83,56 @@ jobs: - name: Test built package with pytest run: | python -m pytest -s + + docker_tests: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + with: + submodules: true + fetch-depth: 1 + + # TODO: as of 2020-11 this helper layer broke, upgrade and re-enable this once it's usable again + # - uses: satackey/action-docker-layer-caching@v0.0.8 + + - name: Build image + run: | + docker build . -t "$DOCKER_IMAGE" + + - name: Init data dir + run: | + mkdir data + docker run -v "$PWD"/data:/data "$DOCKER_IMAGE" init + + - name: Run test server + run: | + sudo bash -c 'echo "127.0.0.1 www.test-nginx-1.local www.test-nginx-2.local" >> /etc/hosts' + docker run --name www-nginx -p 80:80 -d nginx + + - name: Add link + run: | + docker run -v "$PWD"/data:/data --network host "$DOCKER_IMAGE" add http://www.test-nginx-1.local + + - name: Add stdin link + run: | + echo "http://www.test-nginx-2.local" | docker run -i --network host -v "$PWD"/data:/data "$DOCKER_IMAGE" add + + - name: List links + run: | + docker run -v "$PWD"/data:/data "$DOCKER_IMAGE" list | grep -q "www.test-nginx-1.local" || { echo "The site 1 isn't in the list"; exit 1; } + docker run -v "$PWD"/data:/data "$DOCKER_IMAGE" list | grep -q "www.test-nginx-2.local" || { echo "The site 2 isn't in the list"; exit 1; } + + - name: Start docker-compose stack + run: | + docker-compose run archivebox init + docker-compose up -d + sleep 5 + curl --silent --location 'http://127.0.0.1:8000' | grep 'ArchiveBox' + curl --silent --location 'http://127.0.0.1:8000/static/admin/js/jquery.init.js' | grep 'window.django' + + - name: Check added urls show up in index + run: | + docker-compose run archivebox add 'http://example.com/#test_docker' --index-only + curl --silent --location 'http://127.0.0.1:8000' | grep 'http://example.com/#test_docker' + docker-compose down || true