From f6b94dca985ea721e73ae7eaf352b1236a813ab8 Mon Sep 17 00:00:00 2001 From: Xe Iaso Date: Mon, 14 Jul 2025 10:42:35 -0400 Subject: [PATCH] test: add git push smoke test (#830) * test: add git push smoke test Signed-off-by: Xe Iaso * test(git-push): add git config commands Signed-off-by: Xe Iaso * test(git-push): set upstream Signed-off-by: Xe Iaso * test(git-push): set remote branch name Signed-off-by: Xe Iaso --------- Signed-off-by: Xe Iaso --- .github/workflows/smoke-tests.yml | 23 +++++++++++++++++++ test/git-push/docker-compose.yaml | 16 +++++++++++++ test/git-push/test.sh | 37 +++++++++++++++++++++++++++++++ test/git-push/var/.gitignore | 2 ++ 4 files changed, 78 insertions(+) create mode 100644 test/git-push/docker-compose.yaml create mode 100755 test/git-push/test.sh create mode 100644 test/git-push/var/.gitignore diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 21d1b29..ee5f168 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -32,3 +32,26 @@ jobs: run: | cd test/git-clone ./test.sh + + git-push: + 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-push + ./test.sh diff --git a/test/git-push/docker-compose.yaml b/test/git-push/docker-compose.yaml new file mode 100644 index 0000000..88978cf --- /dev/null +++ b/test/git-push/docker-compose.yaml @@ -0,0 +1,16 @@ +services: + git: + image: ghcr.io/kutespaces/simple-git-http-server + pull_policy: always + restart: always + volumes: + - ./var/repos:/git + + anubis: + image: ko.local/anubis + environment: + BIND: ":3000" + TARGET: http://git:80 + USE_REMOTE_ADDRESS: "true" + ports: + - 3000:3000 diff --git a/test/git-push/test.sh b/test/git-push/test.sh new file mode 100755 index 0000000..132666b --- /dev/null +++ b/test/git-push/test.sh @@ -0,0 +1,37 @@ +#!/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/foo +mkdir -p ./var/repos + +(cd ./var/repos && git init --bare foo.git && cd foo.git && git config http.receivepack true) + +docker compose up -d + +sleep 2 + +( + cd var && \ + mkdir foo && \ + cd foo && \ + git init && \ + touch README && \ + git add . && \ + git config user.name "Anubis CI" && \ + git config user.email "social+anubis-ci@techaro.lol" && \ + git commit -sm "initial commit" && \ + git push -u http://localhost:3000/git/foo.git master +) + +docker compose down \ No newline at end of file diff --git a/test/git-push/var/.gitignore b/test/git-push/var/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/test/git-push/var/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file