Some dependencies are not catched by the quarkus bom, so it's necessary to generate and build a project to cache them. The new automatic test disables all external networking and tries to generate and build the quarkus project.custom-downloader
| @@ -9,11 +9,11 @@ services: | |||||
| volumes: | volumes: | ||||
| - ./repo/reposilite.cdn:/reposilite.cdn | - ./repo/reposilite.cdn:/reposilite.cdn | ||||
| - ./data:/app/data | - ./data:/app/data | ||||
| ports: | |||||
| - "9001:80" | |||||
| # Network added in docker-compose.override.yml | |||||
| networks: | networks: | ||||
| - default | |||||
| - nonet | - nonet | ||||
| ports: | |||||
| - "9001:80" | |||||
| restart: unless-stopped | restart: unless-stopped | ||||
| maven-sync-job: | maven-sync-job: | ||||
| build: ./sync | build: ./sync | ||||
| @@ -23,7 +23,10 @@ services: | |||||
| - ./poms:/poms | - ./poms:/poms | ||||
| networks: | networks: | ||||
| - nonet | - nonet | ||||
| extra_hosts: | |||||
| - "repo.maven.apache.org:0.0.0.0" | |||||
| - "registry.quarkus.io:0.0.0.0" | |||||
| networks: | networks: | ||||
| nonet: | nonet: | ||||
| internal: true | |||||
| internal: true | |||||
| @@ -35,6 +35,7 @@ repositories { | |||||
| https://repo1.maven.org/maven2 --store --connectTimeout=3 --readTimeout=15 | https://repo1.maven.org/maven2 --store --connectTimeout=3 --readTimeout=15 | ||||
| https://oss.sonatype.org/content/repositories/snapshots --store --connectTimeout=3 --readTimeout=15 | https://oss.sonatype.org/content/repositories/snapshots --store --connectTimeout=3 --readTimeout=15 | ||||
| https://packages.confluent.io/maven/ --store --connectTimeout=3 --readTimeout=15 | https://packages.confluent.io/maven/ --store --connectTimeout=3 --readTimeout=15 | ||||
| https://registry.quarkus.io/maven --store --connectTimeout=3 --readTimeout=15 | |||||
| https://plugins.gradle.org/m2/ --store --connectTimeout=3 --readTimeout=15 | https://plugins.gradle.org/m2/ --store --connectTimeout=3 --readTimeout=15 | ||||
| ] | ] | ||||
| } | } | ||||
| @@ -1,4 +1,4 @@ | |||||
| FROM maven:alpine | |||||
| FROM maven:3-openjdk-11 | |||||
| RUN mkdir /poms && mkdir -p /root/.m2 | RUN mkdir /poms && mkdir -p /root/.m2 | ||||
| @@ -7,4 +7,4 @@ COPY settings.xml /root/.m2/settings.xml | |||||
| VOLUME [ "/poms" ] | VOLUME [ "/poms" ] | ||||
| ENTRYPOINT [ "/resolve-deps-from-poms.sh" ] | |||||
| CMD [ "/resolve-deps-from-poms.sh" ] | |||||
| @@ -1,4 +1,12 @@ | |||||
| #!/bin/sh | |||||
| #!/bin/bash | |||||
| usage () | |||||
| { | |||||
| echo "USAGE: $0 [FLAGS]" | |||||
| echo "Flags:" | |||||
| echo " -t: Skip download of dependencies. Used for testing that a previous download succeded." | |||||
| echo " -h: Print this message" | |||||
| } | |||||
| is_reposilite_up () | is_reposilite_up () | ||||
| { | { | ||||
| @@ -6,22 +14,58 @@ is_reposilite_up () | |||||
| return $? | return $? | ||||
| } | } | ||||
| i=0 | |||||
| until is_reposilite_up; do | |||||
| i=$((i+1)) | |||||
| wait_for_reposilite () | |||||
| { | |||||
| i=0 | |||||
| until is_reposilite_up; do | |||||
| i=$((i+1)) | |||||
| if [ $i -gt 30 ]; then | |||||
| return $i | |||||
| fi | |||||
| if [ $i -gt 30 ]; then | |||||
| echo "Could not connect to reposilite. Aborting." | |||||
| exit 1 | |||||
| fi | |||||
| sleep 1 | |||||
| done | |||||
| return $i | |||||
| } | |||||
| should_download=1 | |||||
| sleep 1 | |||||
| while [ $# -ne 0 ]; do | |||||
| case "$1" in | |||||
| -t) should_download=0 ;; | |||||
| -h) usage; exit 0 ;; | |||||
| esac | |||||
| shift | |||||
| done | done | ||||
| handle_parameters | |||||
| wait_for_reposilite | |||||
| if [ $? -lt 30 ]; then | if [ $? -lt 30 ]; then | ||||
| for pom in /poms/*; do | |||||
| mvn -P central -Dos.detected.classifier=linux-x86_64 -f $pom dependency:go-offline; | |||||
| done | |||||
| if [ $should_download -eq 1 ]; then | |||||
| for pom in /poms/*; do | |||||
| mvn -P central \ | |||||
| -Dos.detected.classifier=linux-x86_64 \ | |||||
| -f $pom dependency:go-offline | |||||
| done | |||||
| fi | |||||
| echo "Generating quarkus project" | |||||
| mvn -P central \ | |||||
| io.quarkus.platform:quarkus-maven-plugin::create \ | |||||
| -DprojectGroupId=com.example \ | |||||
| -DprojectArtifactId=quarkus-test | |||||
| RET=$? | |||||
| if [ $RET -eq 0 ]; then | |||||
| cd quarkus-test | |||||
| echo "Building quarkus project" | |||||
| mvn package | |||||
| RET=$? | |||||
| fi | |||||
| exit $RET | |||||
| else | else | ||||
| echo "Can't connect to repository" | echo "Can't connect to repository" | ||||
| exit 255 | exit 255 | ||||