diff options
author | Felix Boerner <ich@felix-boerner.de> | 2024-01-08 08:48:30 +0100 |
---|---|---|
committer | Felix Börner <escalate@gmx.de> | 2024-01-09 11:01:09 +0100 |
commit | 37f39b53e4cb47285729a5dd24c8afe42954f75c (patch) | |
tree | 68ec190b244f047742a10b7819ed3e0009cf2918 | |
parent | 0e60ac26f3713f72ccdae36a5a1df1203cf4fa9f (diff) |
test: add sitespeed.io tests
31 files changed, 609 insertions, 56 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index c766789..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: CI -'on': - push: - branches: - - master - pull_request: - branches: - - master -jobs: - build: - name: Build Hugo example site and archive output - runs-on: ubuntu-latest - steps: - - name: Check out repository - uses: actions/checkout@v4 - - - name: Setup Hugo - uses: peaceiris/actions-hugo@v2 - - - name: Build Hugo example site - run: | - cd exampleSite - hugo --verbose --baseURL= --themesDir=../../ - - - name: Upload Hugo example site - uses: actions/upload-artifact@v4 - with: - name: hugo-example-site - path: exampleSite/public - - lighthouse: - name: Run Lighthouse tests against built Hugo example site - runs-on: ubuntu-latest - needs: build - steps: - - name: Check out repository - uses: actions/checkout@v4 - - - name: Download Hugo example site - uses: actions/download-artifact@v4 - with: - name: hugo-example-site - path: exampleSite/public - - - name: Run Lighthouse against a static dist dir - uses: treosh/lighthouse-ci-action@v10 - with: - configPath: ./lighthouserc.json diff --git a/.github/workflows/peformance.yml b/.github/workflows/peformance.yml new file mode 100644 index 0000000..6fa8d0c --- /dev/null +++ b/.github/workflows/peformance.yml @@ -0,0 +1,65 @@ +name: Web-Performance +'on': + push: + branches: + - master + pull_request: +jobs: + hugo: + name: Hugo + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Setup Hugo + uses: peaceiris/actions-hugo@v2 + + - name: Build Hugo example site with image + run: | + cd tests/exampleSiteWithImage/ + hugo --logLevel=info --baseURL= --themesDir=../../../ + + - name: Upload Hugo example site with image + uses: actions/upload-artifact@v4 + with: + name: hugo-example-site-with-image + path: tests/exampleSiteWithImage/public + + - name: Build Hugo example site with video + run: | + cd tests/exampleSiteWithVideo/ + hugo --logLevel=info --baseURL= --themesDir=../../../ + + - name: Upload Hugo example site with video + uses: actions/upload-artifact@v4 + with: + name: hugo-example-site-with-video + path: tests/exampleSiteWithVideo/public + + sitespeed: + name: Sitespeed.io + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Run sitespeed.io for example site with image + run: | + docker compose --file tests/exampleSiteWithImage/docker-compose.yml up --exit-code-from sitespeed + + - name: Upload sitespeed.io result for example site with image + uses: actions/upload-artifact@v4 + with: + name: sitespeed.io-example-site-with-image + path: tests/exampleSiteWithImage/sitespeed-result + + - name: Run sitespeed.io for example site with video + run: | + docker compose --file tests/exampleSiteWithVideo/docker-compose.yml up --exit-code-from sitespeed + + - name: Upload sitespeed.io result for example site with video + uses: actions/upload-artifact@v4 + with: + name: sitespeed.io-example-site-with-video + path: tests/exampleSiteWithVideo/sitespeed-result diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..62341f5 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,57 @@ +name: Release +'on': + workflow_run: + workflows: + - Tests + - Web-Performance + branches: + - master + types: + - completed +jobs: + release: + name: Release + runs-on: ubuntu-latest + if: ${{ github.event.workflow_run.conclusion == 'success' }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Check for Go files + id: check_go + uses: andstor/file-existence-action@v2 + with: + files: "**/*.go" + + - name: Fetch all tags + if: steps.check_go.outputs.files_exists == 'true' + run: git fetch --force --tags + + - name: Set up Go + if: steps.check_go.outputs.files_exists == 'true' + uses: actions/setup-go@v5 + with: + go-version: 'stable' + + - name: Install GoReleaser + if: steps.check_go.outputs.files_exists == 'true' + uses: goreleaser/goreleaser-action@v5 + with: + install-only: true + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 'lts/*' + + - name: Create Github release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + if [[ "${{ steps.check_go.outputs.files_exists }}" == "true" ]]; then + npx -p @semantic-release/changelog -p @semantic-release/exec -p @semantic-release/git semantic-release + else + npx semantic-release + fi diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..e7db8c5 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,274 @@ +name: Tests +'on': + push: + branches: + - master + pull_request: +jobs: + editorconfig: + name: Editorconfig + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Install editorconfig-checker + run: | + gh release download --pattern "*linux-amd64.tar.gz" --dir /tmp + tar --extract --gzip --strip-components 1 --file /tmp/ec-linux-amd64.tar.gz --directory /tmp + chmod +x /tmp/ec-linux-amd64 + mv /tmp/ec-linux-amd64 /usr/local/bin/ec + env: + GH_REPO: editorconfig-checker/editorconfig-checker + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + + - name: Run editorconfig-checker + run: | + ec + + dockerfile: + name: Dockerfile + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Check for Dockerfile files + id: check_dockerfile + uses: andstor/file-existence-action@v2 + with: + files: "**/Dockerfile*" + + - name: Install hadolint + if: steps.check_dockerfile.outputs.files_exists == 'true' + run: | + gh release download --pattern "*Linux-x86_64" --dir /tmp + chmod +x /tmp/hadolint-Linux-x86_64 + mv /tmp/hadolint-Linux-x86_64 /usr/local/bin/hadolint + env: + GH_REPO: hadolint/hadolint + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + + - name: Run hadolint + if: steps.check_dockerfile.outputs.files_exists == 'true' + run: | + find . -name "Dockerfile*" -not -name "Dockerfile.j2" -not -path "*/ansible_collections/*" -print0 | xargs -0 -I{} hadolint "{}" + + shell: + name: Shell + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Check for Shell files + id: check_shell + uses: andstor/file-existence-action@v2 + with: + files: "**/*.sh" + + - name: Install shellcheck + if: steps.check_shell.outputs.files_exists == 'true' + run: | + gh release download --pattern "*linux.x86_64.tar.xz" --dir /tmp + tar --extract --xz --strip-components 1 --file /tmp/shellcheck-*.linux.x86_64.tar.xz --directory /tmp + chmod +x /tmp/shellcheck + mv /tmp/shellcheck /usr/local/bin/shellcheck + env: + GH_REPO: koalaman/shellcheck + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + + - name: Run shellcheck + if: steps.check_shell.outputs.files_exists == 'true' + run: | + find . -name "*.sh" -not -path "*/ansible_collections/*" -print0 | xargs -0 -I{} shellcheck --external-sources "{}" + + yaml: + name: YAML + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Check for YAML files + id: check_yaml + uses: andstor/file-existence-action@v2 + with: + files: "**/*.yml" + + - name: Install yamllint + if: steps.check_yaml.outputs.files_exists == 'true' + run: | + pip3 install --disable-pip-version-check yamllint + + - name: Run yamllint + if: steps.check_yaml.outputs.files_exists == 'true' + run: | + yamllint --strict . + + python: + name: Python + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Check for Python files + id: check_python + uses: andstor/file-existence-action@v2 + with: + files: "**/*.py" + + - name: Install flake8 + if: steps.check_python.outputs.files_exists == 'true' + run: | + pip3 install --disable-pip-version-check flake8 + + - name: Run flake8 + if: steps.check_python.outputs.files_exists == 'true' + run: | + flake8 --show-source . + + - name: Install isort + if: steps.check_python.outputs.files_exists == 'true' + run: | + pip3 install --disable-pip-version-check isort[colors] + + - name: Run isort + if: steps.check_python.outputs.files_exists == 'true' + run: | + isort . --check-only --diff --color + + - name: Check for Tox file + id: check_tox + uses: andstor/file-existence-action@v2 + with: + files: "tox.ini" + + - name: Install tox + if: steps.check_tox.outputs.files_exists == 'true' + run: | + pip3 install --disable-pip-version-check tox + + - name: Install test dependencies + if: steps.check_tox.outputs.files_exists == 'true' + run: | + make dev-requirements + + - name: Run tox + if: steps.check_tox.outputs.files_exists == 'true' + run: | + tox + + ansible: + name: Ansible + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Check for Ansible files + id: check_ansible + uses: andstor/file-existence-action@v2 + with: + files: "tasks, meta" + + - name: Set up Python 3.x + if: steps.check_ansible.outputs.files_exists == 'true' + uses: actions/setup-python@v5 + with: + python-version: '3.x' + + - name: Install ansible + if: steps.check_ansible.outputs.files_exists == 'true' + run: | + pip3 install --disable-pip-version-check ansible + + - name: Install ansible-lint + if: steps.check_ansible.outputs.files_exists == 'true' + run: | + pip3 install --disable-pip-version-check ansible-lint + + - name: Run ansible-lint + if: steps.check_ansible.outputs.files_exists == 'true' + run: | + ansible-lint --force-color . + + - name: Check for Molecule files + id: check_molecule + uses: andstor/file-existence-action@v2 + with: + files: "molecule" + + - name: Install molecule + if: steps.check_molecule.outputs.files_exists == 'true' + run: | + pip3 install --disable-pip-version-check molecule molecule-plugins[docker] pytest-testinfra + + - name: Run molecule + if: steps.check_molecule.outputs.files_exists == 'true' + run: | + molecule test --all + + docker-compose: + name: Docker-Compose + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Check for Docker-Compose test file + id: check_docker_compose_test + uses: andstor/file-existence-action@v2 + with: + files: "docker-compose.test.yml" + + - name: Run docker-compose test + if: steps.check_docker_compose_test.outputs.files_exists == 'true' + run: | + docker compose --file docker-compose.test.yml build + + go: + name: Go + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Check for Go files + id: check_go + uses: andstor/file-existence-action@v2 + with: + files: "**/*.go" + + - name: Set up Go + if: steps.check_go.outputs.files_exists == 'true' + uses: actions/setup-go@v5 + with: + go-version: 'stable' + + - name: Run go vet + if: steps.check_go.outputs.files_exists == 'true' + run: | + go vet ./... + + - name: Run go test + if: steps.check_go.outputs.files_exists == 'true' + run: | + go test -v -cover ./... + + - name: Install staticcheck + if: steps.check_go.outputs.files_exists == 'true' + run: | + gh release download --pattern "*linux_amd64.tar.gz" --dir /tmp + tar --extract --gzip --strip-components 1 --file /tmp/staticcheck_linux_amd64.tar.gz --directory /tmp + chmod +x /tmp/staticcheck + mv /tmp/staticcheck /usr/local/bin/staticcheck + env: + GH_REPO: dominikh/go-tools + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + + - name: Run staticcheck + if: steps.check_go.outputs.files_exists == 'true' + run: | + staticcheck @@ -1,3 +1,5 @@ .DS_Store Thumbs.db public/ +sitespeed-result/ +.hugo_build.lock diff --git a/.yamllint b/.yamllint new file mode 100644 index 0000000..1e4cd8c --- /dev/null +++ b/.yamllint @@ -0,0 +1,9 @@ +extends: default + +rules: + comments: + min-spaces-from-content: 1 + comments-indentation: false + document-start: + present: false + line-length: false diff --git a/lighthouserc.json b/lighthouserc.json deleted file mode 100644 index 13c9c25..0000000 --- a/lighthouserc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "ci": { - "collect": { - "staticDistDir": "./exampleSite/public" - } - } - } diff --git a/tests/exampleSiteWithImage/budget.json b/tests/exampleSiteWithImage/budget.json new file mode 100644 index 0000000..2917d78 --- /dev/null +++ b/tests/exampleSiteWithImage/budget.json @@ -0,0 +1,18 @@ +{ + "budget": { + "requests": { + "total": 9 + }, + "transferSize": { + "total": 321024 + }, + "thirdParty": { + "requests": 4 + }, + "score": { + "bestpractice": 93, + "privacy": 72, + "performance": 86 + } + } +} diff --git a/exampleSite/config.toml b/tests/exampleSiteWithImage/config.toml index ca61111..0fb0a40 100644 --- a/exampleSite/config.toml +++ b/tests/exampleSiteWithImage/config.toml @@ -13,7 +13,7 @@ uglyURLs = true googleAnalytics = "" # Copyright -copyright = "©2021 Your Name" +copyright = "©2024 Your Name" [params] diff --git a/exampleSite/content/_index.md b/tests/exampleSiteWithImage/content/_index.md index aabe3b3..aabe3b3 100644 --- a/exampleSite/content/_index.md +++ b/tests/exampleSiteWithImage/content/_index.md diff --git a/exampleSite/content/ipsum-in.md b/tests/exampleSiteWithImage/content/ipsum-in.md index 300fa9a..300fa9a 100644 --- a/exampleSite/content/ipsum-in.md +++ b/tests/exampleSiteWithImage/content/ipsum-in.md diff --git a/exampleSite/content/luctus-urna.md b/tests/exampleSiteWithImage/content/luctus-urna.md index 95c6c86..95c6c86 100644 --- a/exampleSite/content/luctus-urna.md +++ b/tests/exampleSiteWithImage/content/luctus-urna.md diff --git a/exampleSite/content/purus-sem.md b/tests/exampleSiteWithImage/content/purus-sem.md index fb71313..fb71313 100644 --- a/exampleSite/content/purus-sem.md +++ b/tests/exampleSiteWithImage/content/purus-sem.md diff --git a/tests/exampleSiteWithImage/docker-compose.yml b/tests/exampleSiteWithImage/docker-compose.yml new file mode 100644 index 0000000..5f544ba --- /dev/null +++ b/tests/exampleSiteWithImage/docker-compose.yml @@ -0,0 +1,20 @@ +services: + hugo: + image: hugomods/hugo:latest + volumes: + - type: bind + source: ../../../ + target: /src + command: ["hugo", "server", "--logLevel=info", "--bind=0.0.0.0", "--baseURL=http://hugo", "--disableLiveReload", "--source=/src/hugo-split-theme/tests/exampleSiteWithImage", "--themesDir=/src"] + ports: + - "1313:1313" + + sitespeed: + image: sitespeedio/sitespeed.io:latest + volumes: + - type: bind + source: . + target: /sitespeed.io + depends_on: + - hugo + command: ["http://hugo:1313/index.html", "--budget.configPath=budget.json"] diff --git a/exampleSite/static/css/style.css b/tests/exampleSiteWithImage/static/css/style.css index fce3760..fce3760 100644 --- a/exampleSite/static/css/style.css +++ b/tests/exampleSiteWithImage/static/css/style.css diff --git a/exampleSite/static/favicon.ico b/tests/exampleSiteWithImage/static/favicon.ico Binary files differindex ed410b2..ed410b2 100644 --- a/exampleSite/static/favicon.ico +++ b/tests/exampleSiteWithImage/static/favicon.ico diff --git a/exampleSite/static/images/background.jpg b/tests/exampleSiteWithImage/static/images/background.jpg Binary files differindex b5ea412..b5ea412 100644 --- a/exampleSite/static/images/background.jpg +++ b/tests/exampleSiteWithImage/static/images/background.jpg diff --git a/exampleSite/static/images/social.jpg b/tests/exampleSiteWithImage/static/images/social.jpg Binary files differindex 5638107..5638107 100644 --- a/exampleSite/static/images/social.jpg +++ b/tests/exampleSiteWithImage/static/images/social.jpg diff --git a/exampleSite/static/videos/background.mp4 b/tests/exampleSiteWithImage/static/videos/background.mp4 Binary files differindex 31dc4bc..31dc4bc 100644 --- a/exampleSite/static/videos/background.mp4 +++ b/tests/exampleSiteWithImage/static/videos/background.mp4 diff --git a/tests/exampleSiteWithVideo/budget.json b/tests/exampleSiteWithVideo/budget.json new file mode 100644 index 0000000..2f2dc53 --- /dev/null +++ b/tests/exampleSiteWithVideo/budget.json @@ -0,0 +1,18 @@ +{ + "budget": { + "requests": { + "total": 9 + }, + "transferSize": { + "total": 2048000 + }, + "thirdParty": { + "requests": 4 + }, + "score": { + "bestpractice": 93, + "privacy": 72, + "performance": 84 + } + } +} diff --git a/tests/exampleSiteWithVideo/config.toml b/tests/exampleSiteWithVideo/config.toml new file mode 100644 index 0000000..93da311 --- /dev/null +++ b/tests/exampleSiteWithVideo/config.toml @@ -0,0 +1,103 @@ +# Site settings +baseURL = "https://example.com" +languageCode = "en-US" +title = "Split - HTML Template Demo" +theme = "hugo-split-theme" +disableKinds = ["section", "taxonomy", "taxonomyTerm", "RSS", "sitemap"] + +# Local preview mode +relativeURLs = true +uglyURLs = true + +# Enter your tracking code to enable Google Analytics +googleAnalytics = "" + +# Copyright +copyright = "©2024 Your Name" + +[params] + + # Metadata for search engines and social sharing + author = "Jenny Jones" + description = "Split is a centrally-divided layout for a professional online presence with a big image or video left with alongside content." + shareImage = "images/social.jpg" + twitterHandle = "onepagelove" + + # Favicon + favicon = "favicon.ico" + + # Section - Visual + [params.visual] + + # Image + [params.visual.image] + enable = false + file = "images/background.jpg" + position = "center center" + + # Video + [params.visual.video] + enable = true + mute = true + file = "videos/background.mp4" + # youtubeId = "dk9uNWPP7EA" + + # Links + # + # Links List #1 + [[params.links]] + [params.links.list1] + heading = "Connect" + + [[params.links.list1.link]] + text = "Blog" + url = "#" + new_tab = true # new tab + + [[params.links.list1.link]] + text = "Email" + url = "#" + new_tab = false # Default, open at same tab + + [[params.links.list1.link]] + text = "Newsletter" + url = "#" + + # Links List #2 + [[params.links]] + [params.links.list2] + heading = "Social" + + [[params.links.list2.link]] + text = "Twitter" + url = "#" + + [[params.links.list2.link]] + text = "Instagram" + url = "#" + + [[params.links.list2.link]] + text = "Dribbble" + url = "#" + + # Links List #3 + [[params.links]] + [params.links.list3] + heading = "Network" + + [[params.links.list3.link]] + text = "Link One" + url = "#" + + [[params.links.list3.link]] + text = "Link Two" + url = "#" + + [[params.links.list3.link]] + text = "Link Three" + url = "#" + + # The original template is released under the Creative Commons Attribution 3.0 License. + # Please keep the original attribution link when using for your own project. + # If you'd like to use the template without the attribution, you can check out + # the license option via the template author's website: https://onepagelove.com/split diff --git a/tests/exampleSiteWithVideo/content/_index.md b/tests/exampleSiteWithVideo/content/_index.md new file mode 100644 index 0000000..aabe3b3 --- /dev/null +++ b/tests/exampleSiteWithVideo/content/_index.md @@ -0,0 +1,6 @@ ++++ +title = "Jenny Jones" +tagline = "Designer. Stylist. Nomad." ++++ + +Donec at libero id lectus porta dapibus eu in nibh. Cras id mauris sapien. Fusce viverra [luctus urna]({{< ref "luctus-urna.md" >}}) ac rutrum. Duis semper elit eu mi facilisis eleifend. Donec semper, [ipsum in]({{< ref "ipsum-in.md" >}}) malesuada congue, [purus sem]({{< ref "purus-sem.md" >}}) ullamcorper massa, sit amet lacinia nibh enim sed massa. diff --git a/tests/exampleSiteWithVideo/content/ipsum-in.md b/tests/exampleSiteWithVideo/content/ipsum-in.md new file mode 100644 index 0000000..300fa9a --- /dev/null +++ b/tests/exampleSiteWithVideo/content/ipsum-in.md @@ -0,0 +1,5 @@ ++++ +title = "ipsum in" ++++ + +Curabitur ligula sapien, tincidunt non, euismod vitae, posuere imperdiet, leo. Maecenas malesuada. Praesent congue erat at massa. Sed cursus turpis vitae tortor. Donec posuere vulputate arcu. Phasellus accumsan cursus velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed aliquam, nisi quis porttitor congue, elit erat euismod orci, ac placerat dolor lectus quis orci. diff --git a/tests/exampleSiteWithVideo/content/luctus-urna.md b/tests/exampleSiteWithVideo/content/luctus-urna.md new file mode 100644 index 0000000..95c6c86 --- /dev/null +++ b/tests/exampleSiteWithVideo/content/luctus-urna.md @@ -0,0 +1,5 @@ ++++ +title = "luctus urna" ++++ + +Aenean posuere, tortor sed cursus feugiat, nunc augue blandit nunc, eu sollicitudin urna dolor sagittis lacus. Donec elit libero, sodales nec, volutpat a, suscipit non, turpis. Nullam sagittis. Suspendisse pulvinar, augue ac venenatis condimentum, sem libero volutpat nibh, nec pellentesque velit pede quis nunc. diff --git a/tests/exampleSiteWithVideo/content/purus-sem.md b/tests/exampleSiteWithVideo/content/purus-sem.md new file mode 100644 index 0000000..fb71313 --- /dev/null +++ b/tests/exampleSiteWithVideo/content/purus-sem.md @@ -0,0 +1,5 @@ ++++ +title = "purus sem" ++++ + +Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. diff --git a/tests/exampleSiteWithVideo/docker-compose.yml b/tests/exampleSiteWithVideo/docker-compose.yml new file mode 100644 index 0000000..5c900cd --- /dev/null +++ b/tests/exampleSiteWithVideo/docker-compose.yml @@ -0,0 +1,20 @@ +services: + hugo: + image: hugomods/hugo:latest + volumes: + - type: bind + source: ../../../ + target: /src + command: ["hugo", "server", "--logLevel=info", "--bind=0.0.0.0", "--baseURL=http://hugo", "--disableLiveReload", "--source=/src/hugo-split-theme/tests/exampleSiteWithVideo", "--themesDir=/src"] + ports: + - "1313:1313" + + sitespeed: + image: sitespeedio/sitespeed.io:latest + volumes: + - type: bind + source: . + target: /sitespeed.io + depends_on: + - hugo |