diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index b529b9d..ac4df68 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -1,47 +1,50 @@ -name: Test Runner -on: [push] +name: Build and Push Image + +on: + push: + branches: + - main + workflow_dispatch: jobs: - test-check: + build: runs-on: ubuntu-latest container: - image: ubuntu:latest + image: node:20-bookworm steps: - - name: Checkout Repository + - name: Checkout repository uses: actions/checkout@v4 - - name: Say Hello - run: echo "Testing connection..." - - - name: Install Net Tools - run: | - apt-get update - apt-get install -y iputils-ping - - name: Install Docker CLI run: | - apt-get update && apt-get install -y docker.io + apt-get update + apt-get install -y --no-install-recommends ca-certificates docker.io + rm -rf /var/lib/apt/lists/* - - name: Debug Network (Ping Test) - run: | - echo "正在嘗試 Ping docker (DinD service)..." - # 使用 service name "docker" 而不是 container_name "gitea_dind" - ping -c 3 docker - - - name: Test Docker Connection - run: | - echo "正在嘗試連線 Docker API..." - echo "DOCKER_HOST = $DOCKER_HOST" - docker ps - echo "成功!可以看到上面的容器列表了!" + - name: Verify Docker-in-Docker + run: docker info - - name: Build Test Image + - name: Log in to Gitea Registry run: | - docker build --progress=plain -t test-runner:ci . + echo "${{ secrets.REGISTRY_TOKEN }}" | + docker login git.karylab.com \ + --username "${{ secrets.REGISTRY_USERNAME }}" \ + --password-stdin - - name: Run Test Image + - name: Build and test image run: | - output="$(docker run --rm test-runner:ci)" + IMAGE="git.karylab.com/karylab_agents/test-runner" + docker build --progress=plain \ + --tag "${IMAGE}:${{ gitea.sha }}" \ + --tag "${IMAGE}:latest" \ + . + output="$(docker run --rm "${IMAGE}:${{ gitea.sha }}")" echo "$output" test "$output" = "Gitea Runner Docker build succeeded." + + - name: Push image + run: | + IMAGE="git.karylab.com/karylab_agents/test-runner" + docker push "${IMAGE}:${{ gitea.sha }}" + docker push "${IMAGE}:latest"