diff --git a/.gitea/workflows/docker-deploy.yml b/.gitea/workflows/docker-deploy.yml deleted file mode 100644 index e6a6e3d..0000000 --- a/.gitea/workflows/docker-deploy.yml +++ /dev/null @@ -1,86 +0,0 @@ -name: Docker test deployment -on: - push: - branches: [main] - workflow_dispatch: - inputs: - deploy_port: - description: Public host port for the test API - required: false - default: '18080' - public_base_url: - description: Public HTTP URL, such as http://SERVER_IP:18080 - required: false - default: '' -concurrency: - group: adcloud-server-test - cancel-in-progress: false -jobs: - test-build-deploy: - if: gitea.ref == 'refs/heads/main' - runs-on: ubuntu-latest - container: - image: docker:27-cli - timeout-minutes: 30 - env: - SOURCE_SERVER: ${{ gitea.server_url }} - SOURCE_REPOSITORY: ${{ gitea.repository }} - SOURCE_REVISION: ${{ gitea.sha }} - DEPLOY_PORT: ${{ inputs.deploy_port || vars.ADCLOUD_DEPLOY_PORT || '18080' }} - PUBLIC_BASE_URL: ${{ inputs.public_base_url || vars.ADCLOUD_PUBLIC_BASE_URL || 'http://47.76.92.159:18080' }} - steps: - - name: Check Docker daemon and tools - run: | - set -eu - apk add --no-cache python3 bash curl - if ! docker info --format 'Docker daemon: {{.Name}}; OS: {{.OperatingSystem}}; version: {{.ServerVersion}}'; then - echo 'Runner job cannot reach Docker. Set runner container.docker_host to the host socket and restart runner.' - exit 1 - fi - docker version --format 'Client={{.Client.Version}} Server={{.Server.Version}}' - - name: Fetch the exact repository revision - env: - SOURCE_TOKEN: ${{ secrets.GITEA_TOKEN }} - run: | - python3 - <<'PY' - import io, os, shutil, tarfile, tempfile, urllib.request - from pathlib import Path - server = os.environ['SOURCE_SERVER'].rstrip('/') - repo = os.environ['SOURCE_REPOSITORY'] - revision = os.environ['SOURCE_REVISION'] - request = urllib.request.Request(server + '/api/v1/repos/' + repo + '/archive/' + revision + '.tar.gz', headers={'Authorization': 'token ' + os.environ['SOURCE_TOKEN']}) - with urllib.request.urlopen(request, timeout=60) as response: - data = response.read() - with tempfile.TemporaryDirectory() as directory: - with tarfile.open(fileobj=io.BytesIO(data), mode='r:gz') as archive: - archive.extractall(directory, filter='data') - roots = list(Path(directory).iterdir()) - if len(roots) != 1 or not roots[0].is_dir(): - raise RuntimeError('Unexpected repository archive structure') - shutil.copytree(roots[0], Path.cwd(), dirs_exist_ok=True) - print('Checked out exact commit:', revision) - PY - - name: Build and run the test image - run: | - set -eu - docker build --target test --tag "adcloud-server-ci:$SOURCE_REVISION-test" . - docker run --rm "adcloud-server-ci:$SOURCE_REVISION-test" - - name: Build the runtime image - run: | - docker build --target runtime --tag "adcloud-server-ci:$SOURCE_REVISION" --label "org.opencontainers.image.revision=$SOURCE_REVISION" . - - name: Test PostgreSQL and Cassandra integration - run: | - export DEPLOY_IMAGE="adcloud-server-ci:$SOURCE_REVISION" - export TEST_IMAGE="adcloud-server-ci:$SOURCE_REVISION-test" - export CI_STACK_NAME="adcloud-ci-$(printf '%s' "$SOURCE_REVISION" | cut -c1-12)-${{ gitea.run_id }}" - bash scripts/compose_stack.sh ci - - name: Stop the retired persistent test stack - if: gitea.event_name == 'push' && gitea.ref == 'refs/heads/main' - run: | - set -eu - stack_ids="$(docker ps -aq --filter label=com.docker.compose.project=adcloud-test)" - if [ -n "$stack_ids" ]; then - docker rm -f $stack_ids - fi - docker rm -f adcloud-server-test 2>/dev/null || true - echo 'Retired Adcloud containers stopped; named data volumes were preserved.'