Переглянути джерело

Move Gradle handing to separate script

main
Sindre Stephansen 10 місяці тому
джерело
коміт
3217d36ff2
Підписано: sindre <sindre@sindrestephansen.com> Ідентифікатор GPG ключа: B06FC67D17A46ADE
4 змінених файлів з 48 додано та 36 видалено
  1. +1
    -0
      sync/.dockerignore
  2. +5
    -30
      sync/Dockerfile
  3. +42
    -0
      sync/download-gradle.sh
  4. +0
    -6
      sync/resolve-deps.sh

+ 1
- 0
sync/.dockerignore Переглянути файл

@@ -1,4 +1,5 @@
**
!download-gradle.sh
!resolve-deps.sh
!src
!requirements.txt

+ 5
- 30
sync/Dockerfile Переглянути файл

@@ -1,53 +1,28 @@
FROM rockylinux:9

# Base image

ENV GRADLE_VER=8.11
ENV GRADLE_HOME=/opt/gradle

# Local change to disable mirrorlists
RUN find /etc/yum.repos.d/ -type f -exec sed -i 's/^mirrorlist/#mirrorlist/;s/^#baseurl/baseurl/' {} \;

RUN dnf makecache --refresh && \
dnf -y update

RUN dnf -y install wget unzip && \
dnf -y clean all && rm -rf /var/cache

RUN wget --output-document=/gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VER}-bin.zip" && \
unzip -d /tmp /gradle.zip && \
mv /tmp/gradle-${GRADLE_VER} /opt/gradle && \
ln -s ${GRADLE_HOME}/bin/gradle /usr/local/bin/gradle && \
rm -rf /gradle.zip

ENV JRE_VER=17

RUN dnf -y install vim yum-utils createrepo_c bzip2 tar vim cargo nodejs \
jq java-${JRE_VER}-openjdk java-${JRE_VER}-openjdk-devel.x86_64 nmap-ncat \
python3.12-pip python3.12-lxml python3.12-requests && \
python3.12-pip python3.12-lxml python3.12-requests wget unzip && \
dnf -y update && \
ln -sf /usr/bin/python3.12 /usr/bin/python3 && \
dnf -y clean all && rm -rf /var/cache

# Local image

WORKDIR /tmp/gradle-wrapper-setup/default
RUN touch settings.gradle.kts
RUN gradle wrapper
RUN ./gradlew build

WORKDIR /tmp/gradle-wrapper-setup/v8.8
RUN touch settings.gradle.kts
RUN gradle wrapper --gradle-version 8.8
RUN ./gradlew build

WORKDIR /tmp/gradle-wrapper-setup/v8.10
RUN touch settings.gradle.kts
RUN gradle wrapper --gradle-version 8.10
RUN ./gradlew build

WORKDIR /workdir

ENV GRADLE_HOME=/opt/gradle
COPY download-gradle.sh .
RUN sh ./download-gradle.sh 8.12 8.11 8.10 8.8

COPY requirements.txt .
RUN python3 -m pip install -r requirements.txt



+ 42
- 0
sync/download-gradle.sh Переглянути файл

@@ -0,0 +1,42 @@
#!/bin/sh

USAGE="Usage: $0 MAIN_GRADLE_VERSION OTHER_GRADLE_VERSIONS..."

if ["$#" == "0" ]; then
echo $USAGE
exit 1
fi

MAIN_VERSION=$1
shift

# Download the main version manually
GRADLE_URL="https://services.gradle.org/distributions/gradle-${MAIN_VERSION}-bin.zip"
DOWNLOAD_PATH=/tmp/gradle.zip

echo "Downloading gradle $MAIN_VERSION"
wget --output-document=$DOWNLOAD_PATH $GRADLE_URL
unzip -d /tmp $DOWNLOAD_PATH
mv /tmp/gradle-${MAIN_VERSION} $GRADLE_HOME
ln -s ${GRADLE_HOME}/bin/gradle /usr/local/bin/gradle
rm -rf $DOWNLOAD_PATH

# Use the main version to download the others
# This is done by creating a fake project for each version,
# and setting up the gradle wrapper. This causes gradle to
# download the required Gradle version to GRADLE_HOME or GRADLE_USER_HOME,
# where it can be reused later.
MAIN_PROJECT_DIR="/tmp/gradle-wrapper-setup"
while (( "$#" )); do
OTHER_VERSION=$1
shift

echo "Downloading gradle $OTHER_VERSION"
PROJECT_DIR="$MAIN_PROJECT_DIR/gradle-$OTHER_VERSION"
mkdir -p "$PROJECT_DIR"
cd "$PROJECT_DIR"
touch "./settings.gradle.kts"
gradle wrapper --gradle-version "$OTHER_VERSION"
./gradlew build
cd -
done

+ 0
- 6
sync/resolve-deps.sh Переглянути файл

@@ -35,12 +35,6 @@ fi
export PROJECTS_DIR=/gradle-projects
mkdir -p "${PROJECTS_DIR}"

export GRADLE_DOWNLOAD_DIR=/gradle-download
mkdir -p "${GRADLE_DOWNLOAD_DIR}"

export GRADLE_VERSIONS_DIR=/gradle-versions
mkdir -p "${GRADLE_VERSIONS_DIR}"

echo "Resolving packages and generating gradle config"
$CUSTOMPYTHON --version
if ! $CUSTOMPYTHON src/main.py -vv --repo="http://repo:80/releases" --output-dir "$PROJECTS_DIR" /package-list.yaml; then


Завантаження…
Відмінити
Зберегти