Sfoglia il codice sorgente

Generate quarkus project during download, and add tests

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
Sindre Stephansen 3 anni fa
parent
commit
b4ff2c1d51
4 ha cambiato i file con 66 aggiunte e 18 eliminazioni
  1. +7
    -4
      docker-compose.yml
  2. +1
    -0
      repo/reposilite.cdn
  3. +2
    -2
      sync/Dockerfile
  4. +56
    -12
      sync/resolve-deps-from-poms.sh

+ 7
- 4
docker-compose.yml Vedi File

@@ -9,11 +9,11 @@ services:
volumes:
- ./repo/reposilite.cdn:/reposilite.cdn
- ./data:/app/data
ports:
- "9001:80"
# Network added in docker-compose.override.yml
networks:
- default
- nonet
ports:
- "9001:80"
restart: unless-stopped
maven-sync-job:
build: ./sync
@@ -23,7 +23,10 @@ services:
- ./poms:/poms
networks:
- nonet
extra_hosts:
- "repo.maven.apache.org:0.0.0.0"
- "registry.quarkus.io:0.0.0.0"

networks:
nonet:
internal: true
internal: true

+ 1
- 0
repo/reposilite.cdn Vedi File

@@ -35,6 +35,7 @@ repositories {
https://repo1.maven.org/maven2 --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://registry.quarkus.io/maven --store --connectTimeout=3 --readTimeout=15
https://plugins.gradle.org/m2/ --store --connectTimeout=3 --readTimeout=15
]
}


+ 2
- 2
sync/Dockerfile Vedi File

@@ -1,4 +1,4 @@
FROM maven:alpine
FROM maven:3-openjdk-11

RUN mkdir /poms && mkdir -p /root/.m2

@@ -7,4 +7,4 @@ COPY settings.xml /root/.m2/settings.xml

VOLUME [ "/poms" ]

ENTRYPOINT [ "/resolve-deps-from-poms.sh" ]
CMD [ "/resolve-deps-from-poms.sh" ]

+ 56
- 12
sync/resolve-deps-from-poms.sh Vedi File

@@ -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 ()
{
@@ -6,22 +14,58 @@ is_reposilite_up ()
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

handle_parameters
wait_for_reposilite

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
echo "Can't connect to repository"
exit 255


Loading…
Annulla
Salva