diff options
-rwxr-xr-x | bootstrap.sh | 2 | ||||
-rw-r--r-- | dist/vespa.spec | 10 | ||||
-rw-r--r-- | screwdriver.yaml | 91 |
3 files changed, 100 insertions, 3 deletions
diff --git a/bootstrap.sh b/bootstrap.sh index e8730303ef7..0108999b1c6 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -42,7 +42,7 @@ echo "Using maven command: ${MAVEN_CMD}" echo "Using maven extra opts: ${MAVEN_EXTRA_OPTS}" mvn_install() { - ${MAVEN_CMD} --no-snapshot-updates -Dmaven.wagon.http.retryHandler.count=5 clean install ${MAVEN_EXTRA_OPTS} "$@" + ${MAVEN_CMD} --batch-mode --no-snapshot-updates -Dmaven.wagon.http.retryHandler.count=5 clean install ${MAVEN_EXTRA_OPTS} "$@" } # Generate vtag map diff --git a/dist/vespa.spec b/dist/vespa.spec index f1bfb1c0fef..76fa0dabb77 100644 --- a/dist/vespa.spec +++ b/dist/vespa.spec @@ -452,17 +452,25 @@ export FACTORY_VESPA_VERSION=%{version} mvn --batch-mode -e -N io.takari:maven:wrapper -Dmaven=3.6.3 %endif %{?_use_mvn_wrapper:env VESPA_MAVEN_COMMAND=$(pwd)/mvnw }sh bootstrap.sh java -%{?_use_mvn_wrapper:./mvnw}%{!?_use_mvn_wrapper:mvn} --batch-mode -nsu -T 1C install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true +%{?_use_mvn_wrapper:./mvnw}%{!?_use_mvn_wrapper:mvn} --batch-mode -nsu -T 1C install -DskipTests -Dmaven.javadoc.skip=true %{_command_cmake} -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DJAVA_HOME=$JAVA_HOME \ -DVESPA_USER=%{_vespa_user} \ -DVESPA_UNPRIVILEGED=no \ + %{_cmake_extra_opts} \ . make %{_smp_mflags} VERSION=%{version} CI=true make -C client/go install-all %endif +%check +%if ! 0%{?installdir:1} +export PYTHONPATH="$PYTHONPATH:/usr/local/lib/$(basename $(readlink -f $(which python3)))/site-packages" +#%{?_use_mvn_wrapper:./mvnw}%{!?_use_mvn_wrapper:mvn} --batch-mode -nsu -T 1C -Dmaven.javadoc.skip=true test +make test ARGS="--output-on-failure %{_smp_mflags}" +%endif + %install rm -rf %{buildroot} diff --git a/screwdriver.yaml b/screwdriver.yaml index 9d423cacfe7..729847f7b5e 100644 --- a/screwdriver.yaml +++ b/screwdriver.yaml @@ -220,7 +220,7 @@ jobs: VESPA_REF=$(meta get vespa.ref) if [[ $VESPA_VERSION == null ]] || [[ $VESPA_REF == null ]]; then echo "Must have valid Vespa version and reference to continue (got VESPA_VERSION=$VESPA_VERSION, VESPA_REF=$VESPA_REF)." - exit 1 + return 1 fi meta set vespa.version $VESPA_VERSION - install-dependencies: | @@ -236,6 +236,95 @@ jobs: - update-sample-apps: | screwdriver/update-vespa-version-in-sample-apps.sh $VESPA_VERSION + publish-legacy-release: + image: docker.io/vespaengine/vespa-build-centos-stream8:latest + + annotations: + screwdriver.cd/cpu: 7 + screwdriver.cd/ram: 16 + screwdriver.cd/disk: HIGH + screwdriver.cd/timeout: 300 + screwdriver.cd/dockerEnabled: true + screwdriver.cd/dockerCpu: TURBO + screwdriver.cd/dockerRam: HIGH + screwdriver.cd/buildPeriodically: H 6 1 * * + + environment: + IMAGE_NAME: "vespaengine/vespa-generic-intel-x86_64" + + secrets: + - DOCKER_HUB_DEPLOY_KEY + + steps: + - get-vespa-version: | + set -x + VESPA_VERSION=$(meta get vespa.version --external sd@8683:publish-release) + if [[ $VESPA_VERSION == null ]] || [[ $VESPA_REF == null ]]; then + echo "Must have valid Vespa version to continue (got VESPA_VERSION=$VESPA_VERSION)." + return 1 + fi + - install-dependencies: | + dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo + dnf install -y docker-ce docker-ce-cli containerd.io + docker system info + - checkout: | + mkdir -p workdir + cd workdir + export WORKDIR=$(pwd) + git clone -q https://github.com/vespa-engine/vespa + (cd vespa && git checkout v$VESPA_VERSION) + git clone -q https://github.com/vespa-engine/system-test + # Set correct version in pom.xml files + (cd vespa && screwdriver/replace-vespa-version-in-poms.sh $VESPA_VERSION $(pwd) ) + - build-rpms: | + cd $WORKDIR + make -C $WORKDIR/vespa -f .copr/Makefile srpm outdir=$WORKDIR + rpmbuild --rebuild \ + --define="_topdir $WORKDIR/vespa-rpmbuild" \ + --define "debug_package %{nil}" \ + --define "_debugsource_template %{nil}" \ + --define '_cmake_extra_opts "-DDEFAULT_VESPA_CPU_ARCH_FLAGS=-msse3 -mcx16 -mtune=intel"' \ + *.src.rpm + rm -f *.src.rpm + mv $WORKDIR/vespa-rpmbuild/RPMS/x86_64/*.rpm . + - build-container-image: | + cat <<EOF > Dockerfile + ARG VESPA_VERSION + FROM docker.io/vespaengine/vespa:\$VESPA_VERSION + USER root + RUN --mount=type=bind,target=/rpms/,source=. dnf reinstall -y /rpms/vespa*rpm && dnf clean all + USER vespa + EOF + docker build --progress plain --build-arg VESPA_VERSION=$VESPA_VERSION --tag docker.io/$IMAGE_NAME:$VESPA_VERSION \ + --tag docker.io/$IMAGE_NAME:latest --file Dockerfile . + - verify-container-image: | + # Trick to be able to use the documentation testing to verify the image built locally + docker tag docker.io/$IMAGE_NAME:$VESPA_VERSION vespaengine/vespa:latest + # Clone and setup doc tests + git clone -q --depth 1 https://github.com/vespa-engine/documentation + cd documentation + python3 -m pip install -qqq -r test/requirements.txt --user + echo -e "urls:\n - en/vespa-quick-start.html" > test/_quick-start.yaml + # Get the required vespa CLI + VESPA_CLI_VERSION=$(curl -fsSL https://api.github.com/repos/vespa-engine/vespa/releases/latest | grep -Po '"tag_name": "v\K.*?(?=")') && \ + curl -fsSL https://github.com/vespa-engine/vespa/releases/download/v${VESPA_CLI_VERSION}/vespa-cli_${VESPA_CLI_VERSION}_linux_amd64.tar.gz | tar -zxf - -C /opt && \ + ln -sf /opt/vespa-cli_${VESPA_CLI_VERSION}_linux_amd64/bin/vespa /usr/local/bin/ + # Run test + test/test.py -c test/_quick-start.yaml + - publish-test-image: | + if [[ -z $SD_PULL_REQUEST ]]; then + if curl -fsSL https://index.docker.io/v1/repositories/$IMAGE_NAME/tags/$VESPA_VERSION &> /dev/null; then + echo "Container image docker.io/$IMAGE_NAME:$VESPA_VERSION aldready exists." + else + OPT_STATE="$(set +o)" + set +x + docker login --username aressem --password "$DOCKER_HUB_DEPLOY_KEY" + eval "$OPT_STATE" + docker push docker.io/$IMAGE_NAME:$VESPA_VERSION + docker push docker.io/$IMAGE_NAME:latest + fi + fi + publish-cli-release: image: homebrew/brew:latest annotations: |