diff --git a/.dockerignore b/.dockerignore index f133ecc6f14bcfe60856a17b6348bab1e7e13b06..345bdfdf86b66dfb2e1f874d3759d7cdec882e59 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,4 +1,4 @@ -.git/ +.git/modules/ .vscode/ docker/blockchain/ docker/ci/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b3a4cd1732de741454867d6f816665d6fe00943e..20d48df976916cfb696ab24d91d0a20df48b1e11 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -171,7 +171,7 @@ docker-ci-runner-build: extends: .docker-build-template variables: BASE_REPO_NAME: "" - BASE_TAG: "docker-24.0.1-2" + BASE_TAG: "docker-24.0.1-3" NAME: "ci-runner" TARGET: "ci-runner-ci" @@ -188,7 +188,7 @@ docker-setup-docker-image-build: sync: extends: .docker_image_builder_job_template stage: sync - image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-2 + image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-3 needs: - prepare_haf_image - prepare_haf_data @@ -303,7 +303,7 @@ sync: HEALTHCHECK_TCP_PORT: 3000 regression-test: - image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-2 + image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-3 stage: test needs: - job: sync @@ -332,7 +332,7 @@ regression-test: - data-cache-storage setup-scripts-test: - image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-2 + image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-3 stage: test needs: - job: sync @@ -357,7 +357,7 @@ setup-scripts-test: - data-cache-storage performance-test: - image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-2 + image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-3 stage: test needs: - job: sync @@ -392,6 +392,37 @@ performance-test: tags: - data-cache-storage +pattern-test: + extends: .pytest_based_template + stage: test + needs: + - job: sync + artifacts: true + - job: docker-setup-docker-image-build + artifacts: true + - job: prepare_haf_image + artifacts: true + services: + - *hfm-only-service + - *postgrest-service + variables: + DATA_SOURCE: ${DATA_CACHE_HAF_PREFIX}_${HAF_COMMIT}_${CI_PIPELINE_ID} + JUNIT_REPORT: $CI_PROJECT_DIR/tests/tavern/report.xml + PYTEST_BASED_IMAGE_NAME: $BUILDER_IMAGE_PATH + POETRY_INSTALL_ROOT_DIR: $CI_PROJECT_DIR/haf/hive/tests/python/hive-local-tools + REPTRACKER_ADDRESS: postgrest-server + REPTRACKER_PORT: 3000 + TAVERN_DIR: $CI_PROJECT_DIR/tests/tavern + script: + - | + cd $CI_PROJECT_DIR/tests/tavern + pytest -n $PYTEST_NUMBER_OF_PROCESSES --junitxml report.xml . + artifacts: + paths: + - "**/*.out.json" + tags: + - data-cache-storage + build_and_publish_image: stage: publish extends: .publish_docker_image_template diff --git a/Dockerfile b/Dockerfile index af123327ef4a6a97396d75eff98ac4b4caecd7b4..c844e1d8a9a0593a0426954543b20629f3ade596 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,11 @@ -# syntax=docker/dockerfile:1.5 -ARG PAAS_PSQL_VERSION=11251948d5dd4867552f9b9836a9e02110304df5 -FROM ghcr.io/alphagov/paas/psql:${PAAS_PSQL_VERSION} AS psql_client +ARG PSQL_CLIENT_VERSION=14-1 +FROM registry.gitlab.syncad.com/hive/common-ci-configuration/psql:${PSQL_CLIENT_VERSION} AS psql_client -RUN <<EOF - set -e - apk add --no-cache bash - adduser -s /bin/bash -G users -D "haf_admin" -EOF - -USER haf_admin -WORKDIR /home/haf_admin +FROM psql_client as version-calculcation -ENTRYPOINT [ "/bin/bash", "-c" ] +COPY --chown=haf_admin:users . /home/haf_admin/src +WORKDIR /home/haf_admin/src +RUN scripts/generate_version_sql.sh $(pwd) FROM psql_client AS full @@ -53,6 +47,7 @@ COPY db /app/db COPY endpoints /app/endpoints COPY account_dump /app/account_dump COPY docker/scripts/block-processing-healthcheck.sh /app/block-processing-healthcheck.sh -COPY docker/scripts/docker-entrypoint.sh /app/docker-entrypoint.sh +COPY docker/scripts/docker_entrypoint.sh /app/docker_entrypoint.sh +COPY --from=version-calculcation --chown=haf_admin:users /home/haf_admin/src/scripts/set_version_in_sql.pgsql /app/scripts/set_version_in_sql.pgsql -ENTRYPOINT ["/app/docker-entrypoint.sh"] \ No newline at end of file +ENTRYPOINT ["/app/docker_entrypoint.sh"] \ No newline at end of file diff --git a/docker-bake.hcl b/docker-bake.hcl index 584b49407bf90779a689a5e3d227de46a15ee3fa..72099fa4951ba85a01f5fda5636ed1e83000e752 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -15,7 +15,7 @@ variable "CI_DEFAULT_BRANCH" { default = "develop" } variable "TAG_CI" { - default = "docker-24.0.1-2" + default = "docker-24.0.1-3" } variable "PSQL_CLIENT_VERSION" { default = "14" diff --git a/docker/scripts/docker-entrypoint.sh b/docker/scripts/docker_entrypoint.sh similarity index 100% rename from docker/scripts/docker-entrypoint.sh rename to docker/scripts/docker_entrypoint.sh diff --git a/scripts/generate_version_sql.sh b/scripts/generate_version_sql.sh index b517efd88f87b9d506999eb7d525f00f57077691..a32f33b51225efb833783113a63bccfb7d162764 100755 --- a/scripts/generate_version_sql.sh +++ b/scripts/generate_version_sql.sh @@ -4,7 +4,7 @@ # usage: ./generate_version_sql.sh root_project_dir # example: ./generate_version_sql.sh $PWD # example: ./generate_version_sql.sh /var/my/sources -# example: ./generate_version_sql.sh /sources/submodules/hafbe /sources/.git/modules/submodules/hafbe +# example: ./generate_version_sql.sh /sources/submodules/reptracker /sources/.git/modules/submodules/reptracker set -euo pipefail @@ -18,4 +18,4 @@ GIT_DIR=${2:-"$1/.git"} # Rationale: https://www.shellcheck.net/wiki/SC2006 GIT_HASH=$(git --git-dir="$GIT_DIR" --work-tree="$GIT_WORK_TREE" rev-parse HEAD) -echo "SELECT reptracker_app.set_version('$GIT_HASH');" > "$PATH_TO_SQL_VERSION_FILE" \ No newline at end of file +echo "TRUNCATE TABLE version; INSERT INTO version(git_hash) VALUES ('$GIT_HASH');" > "$PATH_TO_SQL_VERSION_FILE" \ No newline at end of file