diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml new file mode 100644 index 00000000..007853aa --- /dev/null +++ b/.github/workflows/smoke-tests.yml @@ -0,0 +1,36 @@ +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: + fetch-tags: true + fetch-depth: 0 + 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@v0.8 + + - name: Run test + run: | + cd test/git-server + ./test.sh diff --git a/test/git-clone/docker-compose.yaml b/test/git-clone/docker-compose.yaml new file mode 100644 index 00000000..b89a33a2 --- /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 00000000..3c7d4bc3 --- /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 00000000..c96a04f0 --- /dev/null +++ b/test/git-clone/var/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file