From c2cc1df17252f3ecd52751b711ccba351fffe90a Mon Sep 17 00:00:00 2001 From: Xe Iaso Date: Mon, 14 Jul 2025 10:01:03 -0400 Subject: [PATCH] test: add smoke test for git clone (#828) * test: add smoke test for git clone Signed-off-by: Xe Iaso * chore: exempt tests from spelling Signed-off-by: Xe Iaso * test: rename this to git-clone Signed-off-by: Xe Iaso * test: pin ko setup reference Signed-off-by: Xe Iaso * test: don't persist credentials Signed-off-by: Xe Iaso * test: terminating newline Signed-off-by: Xe Iaso --------- Signed-off-by: Xe Iaso --- .github/actions/spelling/excludes.txt | 1 + .github/workflows/smoke-tests.yml | 34 +++++++++++++++++++++++++++ test/git-clone/docker-compose.yaml | 22 +++++++++++++++++ test/git-clone/test.sh | 26 ++++++++++++++++++++ test/git-clone/var/.gitignore | 2 ++ 5 files changed, 85 insertions(+) create mode 100644 .github/workflows/smoke-tests.yml create mode 100644 test/git-clone/docker-compose.yaml create mode 100755 test/git-clone/test.sh create mode 100644 test/git-clone/var/.gitignore diff --git a/.github/actions/spelling/excludes.txt b/.github/actions/spelling/excludes.txt index 521e0e9..8e7cbad 100644 --- a/.github/actions/spelling/excludes.txt +++ b/.github/actions/spelling/excludes.txt @@ -92,3 +92,4 @@ ignore$ robots.txt ^lib/localization/locales/.*\.json$ ^lib/localization/.*_test.go$ +^test/.*$ diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml new file mode 100644 index 0000000..21d1b29 --- /dev/null +++ b/.github/workflows/smoke-tests.yml @@ -0,0 +1,34 @@ +name: Smoke tests + +on: + push: + branches: ["main"] + pull_request: + branches: ["main"] + +permissions: + contents: read + +jobs: + git-clone: + runs-on: ubuntu-24.04 + steps: + - name: Checkout code + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + persist-credentials: false + + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 + with: + node-version: latest + + - uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 + with: + go-version: stable + + - uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9 + + - name: Run test + run: | + cd test/git-clone + ./test.sh diff --git a/test/git-clone/docker-compose.yaml b/test/git-clone/docker-compose.yaml new file mode 100644 index 0000000..b89a33a --- /dev/null +++ b/test/git-clone/docker-compose.yaml @@ -0,0 +1,22 @@ +services: + cgit: + image: joseluisq/alpine-cgit + pull_policy: always + restart: always + environment: + CGIT_TITLE: Test git server + CGIT_DESC: Test server, please ignore + volumes: + - ./var/repos:/srv/git + + anubis: + image: ko.local/anubis + environment: + BIND: ":3000" + TARGET: http://cgit:80 + USE_REMOTE_ADDRESS: "true" + ports: + - 3000:3000 + +volumes: + cgit-data: diff --git a/test/git-clone/test.sh b/test/git-clone/test.sh new file mode 100755 index 0000000..3c7d4bc --- /dev/null +++ b/test/git-clone/test.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +set -eo pipefail + +export VERSION=$GITHUB_COMMIT-test +export KO_DOCKER_REPO=ko.local + +set -u + +( + cd ../.. && \ + ko build --platform=all --base-import-paths --tags="latest" --image-user=1000 --image-annotation="" --image-label="" ./cmd/anubis -L +) + +rm -rf ./var/repos ./var/clones +mkdir -p ./var/repos ./var/clones + +(cd ./var/repos && git clone --bare https://github.com/TecharoHQ/status.git) + +docker compose up -d + +sleep 2 + +(cd ./var/clones && git clone http://localhost:3000/status.git) + +docker compose down \ No newline at end of file diff --git a/test/git-clone/var/.gitignore b/test/git-clone/var/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/test/git-clone/var/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file