diff --git a/Makefile b/Makefile index 81c5634fb..2b4186833 100644 --- a/Makefile +++ b/Makefile @@ -470,7 +470,8 @@ ecosystem-gitlab-runner-images: cd `pwd`/linux/ecosystem/gitlab/runner/latest && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/amxx-sdk/1.9 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/amxx-sdk/1.10 && pwd && make build && make deploy - cd `pwd`/linux/ecosystem/gitlab/runner/android-sdk && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/gitlab/runner/android-sdk/jdk11 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/gitlab/runner/android-sdk/jdk17 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/atlassian-sdk && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/dotnet-sdk && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/node10 && pwd && make build && make deploy diff --git a/linux/ecosystem/gitlab/runner/android-sdk/Dockerfile b/linux/ecosystem/gitlab/runner/android-sdk/jdk11/Dockerfile similarity index 75% rename from linux/ecosystem/gitlab/runner/android-sdk/Dockerfile rename to linux/ecosystem/gitlab/runner/android-sdk/jdk11/Dockerfile index 9e34bf32a..193958330 100644 --- a/linux/ecosystem/gitlab/runner/android-sdk/Dockerfile +++ b/linux/ecosystem/gitlab/runner/android-sdk/jdk11/Dockerfile @@ -21,6 +21,19 @@ ENV KTC_BIN=$KTC_PATH/bin ENV PATH=$PATH:${GRADLE_BIN}:${KTC_BIN} +################################################################## +# installing java11 +################################################################## +RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ + echo 'deb https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ + apt-get update && \ + apt-get autoremove -y && \ + apt-get install -y --allow-unauthenticated temurin-11-jdk && \ + mkdir /usr/lib/jvm/temurin-11-jdk-amd64/jre && \ + ln -s /usr/lib/jvm/temurin-11-jdk-amd64/bin/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/bin && \ + ln -s /usr/lib/jvm/temurin-11-jdk-amd64/lib/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/lib && \ + java -version + ################################################################## # Android SDK ################################################################## diff --git a/linux/ecosystem/gitlab/runner/android-sdk/Makefile b/linux/ecosystem/gitlab/runner/android-sdk/jdk11/Makefile similarity index 100% rename from linux/ecosystem/gitlab/runner/android-sdk/Makefile rename to linux/ecosystem/gitlab/runner/android-sdk/jdk11/Makefile diff --git a/linux/ecosystem/gitlab/runner/android-sdk/README.md b/linux/ecosystem/gitlab/runner/android-sdk/jdk11/README.md similarity index 100% rename from linux/ecosystem/gitlab/runner/android-sdk/README.md rename to linux/ecosystem/gitlab/runner/android-sdk/jdk11/README.md diff --git a/linux/ecosystem/gitlab/runner/android-sdk/jdk11/docker-compose.yml b/linux/ecosystem/gitlab/runner/android-sdk/jdk11/docker-compose.yml new file mode 100644 index 000000000..440191c02 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/android-sdk/jdk11/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/gitlab-runner:android-sdk-jdk11" + build: + context: . diff --git a/linux/ecosystem/gitlab/runner/android-sdk/sdkman.sh b/linux/ecosystem/gitlab/runner/android-sdk/jdk11/sdkman.sh similarity index 100% rename from linux/ecosystem/gitlab/runner/android-sdk/sdkman.sh rename to linux/ecosystem/gitlab/runner/android-sdk/jdk11/sdkman.sh diff --git a/linux/ecosystem/gitlab/runner/android-sdk/jdk17/Dockerfile b/linux/ecosystem/gitlab/runner/android-sdk/jdk17/Dockerfile new file mode 100644 index 000000000..4baaa84ac --- /dev/null +++ b/linux/ecosystem/gitlab/runner/android-sdk/jdk17/Dockerfile @@ -0,0 +1,77 @@ +FROM epicmorg/gitlab-runner:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ENV ANDROID_HOME=/usr/lib/android-sdk +ENV ANDROID_SDK_ROOT=/usr/lib/android-sdk + +ENV GRADLE_VERSION=8.2 +ENV GRADLE_LINK=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip +ENV GRADLE_ROOT=/opt/gradle +ENV GRADLE_PATH=${GRADLE_ROOT}/gradle-${GRADLE_VERSION} +ENV GRADLE_BIN=$GRADLE_PATH/bin +ARG GRADLE_TEMP=/tmp/gradle.zip + +ENV KTC_VERSION=1.8.22 +ENV KTC_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KTC_VERSION}/kotlin-compiler-${KTC_VERSION}.zip +ARG KTC_TEMP=/tmp/kotlinc.tgz +ENV KTC_ROOT=/opt/kotlin +ENV KTC_PATH=${KTC_ROOT}/kotlinc +ENV KTC_BIN=$KTC_PATH/bin + +ENV PATH=$PATH:${GRADLE_BIN}:${KTC_BIN} + +################################################################## +# installing java17 +################################################################## +RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ + echo 'deb https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ + apt-get update && \ + apt-get autoremove -y && \ + apt-get install -y --allow-unauthenticated temurin-17-jdk && \ + mkdir /usr/lib/jvm/temurin-17-jdk-amd64/jre && \ + ln -s /usr/lib/jvm/temurin-17-jdk-amd64/bin/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/bin && \ + ln -s /usr/lib/jvm/temurin-17-jdk-amd64/lib/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/lib && \ + java -version + +################################################################## +# Android SDK +################################################################## +RUN apt update && \ + apt install -y --allow-unauthenticated \ + android-sdk \ + android-sdk-build-tools \ + android-sdk-platform-tools-common \ + android-sdk-platform-tools \ + adb fastboot f2fs-tools e2fsprogs libsqlite3-0 sqlite3 + +# Activate android sdk +RUN echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > /usr/lib/android-sdk/licenses/android-sdk-license + +################################################################## +# GRADLE +################################################################## +RUN mkdir -p $GRADLE_PATH +RUN wget --no-check-certificate -nv --random-wait --retry-connrefused --continue $GRADLE_LINK -O $GRADLE_TEMP +RUN 7zz x $GRADLE_TEMP -o$GRADLE_ROOT +RUN chmod +x -R $GRADLE_BIN +RUN gradle -v + +################################################################## +# KOTLIN +################################################################## +RUN mkdir -p ${KTC_PATH} +RUN wget --no-check-certificate -nv --random-wait --retry-connrefused --continue ${KTC_LINK} -O ${KTC_TEMP} +RUN 7zz x $KTC_TEMP -o$KTC_ROOT +RUN chmod +x -R ${KTC_BIN} +RUN kotlin -version + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* \ No newline at end of file diff --git a/linux/ecosystem/gitlab/runner/android-sdk/jdk17/Makefile b/linux/ecosystem/gitlab/runner/android-sdk/jdk17/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/android-sdk/jdk17/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/gitlab/runner/android-sdk/jdk17/README.md b/linux/ecosystem/gitlab/runner/android-sdk/jdk17/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/linux/ecosystem/gitlab/runner/android-sdk/docker-compose.yml b/linux/ecosystem/gitlab/runner/android-sdk/jdk17/docker-compose.yml similarity index 52% rename from linux/ecosystem/gitlab/runner/android-sdk/docker-compose.yml rename to linux/ecosystem/gitlab/runner/android-sdk/jdk17/docker-compose.yml index 99f8eb3b0..8f375a35e 100644 --- a/linux/ecosystem/gitlab/runner/android-sdk/docker-compose.yml +++ b/linux/ecosystem/gitlab/runner/android-sdk/jdk17/docker-compose.yml @@ -4,3 +4,8 @@ services: image: "epicmorg/gitlab-runner:android-sdk" build: context: . + + app-jdk17: + image: "epicmorg/gitlab-runner:android-sdk-jdk17" + build: + context: . diff --git a/linux/ecosystem/gitlab/runner/android-sdk/jdk17/sdkman.sh b/linux/ecosystem/gitlab/runner/android-sdk/jdk17/sdkman.sh new file mode 100755 index 000000000..59b74df1e --- /dev/null +++ b/linux/ecosystem/gitlab/runner/android-sdk/jdk17/sdkman.sh @@ -0,0 +1,312 @@ +#!/bin/bash +# +# Copyright 2017 Marco Vermeulen +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + + +# install:- channel: stable; cliVersion: 5.15.0; cliNativeVersion: NA; api: https://api.sdkman.io/2 + +# Global variables +SDKMAN_SERVICE="https://api.sdkman.io/2" +SDKMAN_VERSION="5.15.0" +SDKMAN_PLATFORM=$(uname) + +if [ -z "$SDKMAN_DIR" ]; then + SDKMAN_DIR="$HOME/.sdkman" + SDKMAN_DIR_RAW='$HOME/.sdkman' +else + SDKMAN_DIR_RAW="$SDKMAN_DIR" +fi + +# Local variables +sdkman_tmp_folder="${SDKMAN_DIR}/tmp" +sdkman_zip_file="${sdkman_tmp_folder}/sdkman-${SDKMAN_VERSION}.zip" +sdkman_zip_base_folder="${sdkman_tmp_folder}/sdkman-${SDKMAN_VERSION}" +sdkman_ext_folder="${SDKMAN_DIR}/ext" +sdkman_etc_folder="${SDKMAN_DIR}/etc" +sdkman_var_folder="${SDKMAN_DIR}/var" +sdkman_archives_folder="${SDKMAN_DIR}/archives" +sdkman_candidates_folder="${SDKMAN_DIR}/candidates" +sdkman_config_file="${sdkman_etc_folder}/config" +sdkman_bash_profile="${HOME}/.bash_profile" +sdkman_profile="${HOME}/.profile" +sdkman_bashrc="${HOME}/.bashrc" +sdkman_zshrc="${ZDOTDIR:-${HOME}}/.zshrc" + +sdkman_init_snippet=$( cat << EOF +#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!! +export SDKMAN_DIR="$SDKMAN_DIR_RAW" +[[ -s "${SDKMAN_DIR_RAW}/bin/sdkman-init.sh" ]] && source "${SDKMAN_DIR_RAW}/bin/sdkman-init.sh" +EOF +) + +# OS specific support (must be 'true' or 'false'). +cygwin=false; +darwin=false; +solaris=false; +freebsd=false; +case "$(uname)" in + CYGWIN*) + cygwin=true + ;; + Darwin*) + darwin=true + ;; + SunOS*) + solaris=true + ;; + FreeBSD*) + freebsd=true +esac + +echo '' +echo ' -+syyyyyyys:' +echo ' `/yho:` -yd.' +echo ' `/yh/` +m.' +echo ' .oho. hy .`' +echo ' .sh/` :N` `-/o` `+dyyo:.' +echo ' .yh:` `M- `-/osysoym :hs` `-+sys: hhyssssssssy+' +echo ' .sh:` `N: ms/-`` yy.yh- -hy. `.N-````````+N.' +echo ' `od/` `N- -/oM- ddd+` `sd: hNNm -N:' +echo ' :do` .M. dMMM- `ms. /d+` `NMMs `do' +echo ' .yy- :N` ```mMMM. - -hy. /MMM: yh' +echo ' `+d+` `:/oo/` `-/osyh/ossssssdNMM` .sh: yMMN` /m.' +echo ' -dh- :ymNMMMMy `-/shmNm-`:N/-.`` `.sN /N- `NMMy .m/' +echo ' `oNs` -hysosmMMMMydmNmds+-.:ohm : sd` :MMM/ yy' +echo ' .hN+ /d: -MMMmhs/-.` .MMMh .ss+- `yy` sMMN` :N.' +echo ' :mN/ `N/ `o/-` :MMMo +MMMN- .` `ds mMMh do' +echo ' /NN/ `N+....--:/+oooosooo+:sMMM: hMMMM: `my .m+ -MMM+ :N.' +echo ' /NMo -+ooooo+/:-....`...:+hNMN. `NMMMd` .MM/ -m: oMMN. hs' +echo ' -NMd` :mm -MMMm- .s/ -MMm. /m- mMMd -N.' +echo ' `mMM/ .- /MMh. -dMo -MMMy od. .MMMs..---yh' +echo ' +MMM. sNo`.sNMM+ :MMMM/ sh`+MMMNmNm+++-' +echo ' mMMM- /--ohmMMM+ :MMMMm. `hyymmmdddo' +echo ' MMMMh. ```` `-+yy/`yMMM/ :MMMMMy -sm:.``..-:-.`' +echo ' dMMMMmo-.``````..-:/osyhddddho. `+shdh+. hMMM: :MmMMMM/ ./yy/` `:sys+/+sh/' +echo ' .dMMMMMMmdddddmmNMMMNNNNNMMMMMs sNdo- dMMM- `-/yd/MMMMm-:sy+. :hs- /N`' +echo ' `/ymNNNNNNNmmdys+/::----/dMMm: +m- mMMM+ohmo/.` sMMMMdo- .om: `sh' +echo ' `.-----+/.` `.-+hh/` `od. NMMNmds/ `mmy:` +mMy `:yy.' +echo ' /moyso+//+ossso:. .yy` `dy+:` .. :MMMN+---/oys:' +echo ' /+m: `.-:::-` /d+ +MMMMMMMNh:`' +echo ' +MN/ -yh. `+hddhy+.' +echo ' /MM+ .sh:' +echo ' :NMo -sh/' +echo ' -NMs `/yy:' +echo ' .NMy `:sh+.' +echo ' `mMm` ./yds-' +echo ' `dMMMmyo:-.````.-:oymNy:`' +echo ' +NMMMMMMMMMMMMMMMMms:`' +echo ' -+shmNMMMNmdy+:`' +echo '' +echo '' +echo ' Now attempting installation...' +echo '' +echo '' + +# Sanity checks + +echo "Looking for a previous installation of SDKMAN..." +if [ -d "$SDKMAN_DIR" ]; then + echo "SDKMAN found." + echo "" + echo "======================================================================================================" + echo " You already have SDKMAN installed." + echo " SDKMAN was found at:" + echo "" + echo " ${SDKMAN_DIR}" + echo "" + echo " Please consider running the following if you need to upgrade." + echo "" + echo " $ sdk selfupdate force" + echo "" + echo "======================================================================================================" + echo "" + exit 0 +fi + +echo "Looking for unzip..." +if ! command -v unzip > /dev/null; then + echo "Not found." + echo "======================================================================================================" + echo " Please install unzip on your system using your favourite package manager." + echo "" + echo " Restart after installing unzip." + echo "======================================================================================================" + echo "" + exit 1 +fi + +echo "Looking for zip..." +if ! command -v zip > /dev/null; then + echo "Not found." + echo "======================================================================================================" + echo " Please install zip on your system using your favourite package manager." + echo "" + echo " Restart after installing zip." + echo "======================================================================================================" + echo "" + exit 1 +fi + +echo "Looking for curl..." +if ! command -v curl > /dev/null; then + echo "Not found." + echo "" + echo "======================================================================================================" + echo " Please install curl on your system using your favourite package manager." + echo "" + echo " Restart after installing curl." + echo "======================================================================================================" + echo "" + exit 1 +fi + +if [[ "$solaris" == true ]]; then + echo "Looking for gsed..." + if [ -z $(which gsed) ]; then + echo "Not found." + echo "" + echo "======================================================================================================" + echo " Please install gsed on your solaris system." + echo "" + echo " SDKMAN uses gsed extensively." + echo "" + echo " Restart after installing gsed." + echo "======================================================================================================" + echo "" + exit 1 + fi +else + echo "Looking for sed..." + if [ -z $(command -v sed) ]; then + echo "Not found." + echo "" + echo "======================================================================================================" + echo " Please install sed on your system using your favourite package manager." + echo "" + echo " Restart after installing sed." + echo "======================================================================================================" + echo "" + exit 1 + fi +fi + +echo "Installing SDKMAN scripts..." + + +# Create directory structure + +echo "Create distribution directories..." +mkdir -p "$sdkman_tmp_folder" +mkdir -p "$sdkman_ext_folder" +mkdir -p "$sdkman_etc_folder" +mkdir -p "$sdkman_var_folder" +mkdir -p "$sdkman_archives_folder" +mkdir -p "$sdkman_candidates_folder" + +echo "Getting available candidates..." +SDKMAN_CANDIDATES_CSV=$(curl -s "${SDKMAN_SERVICE}/candidates/all") +echo "$SDKMAN_CANDIDATES_CSV" > "${SDKMAN_DIR}/var/candidates" + +echo "Prime the config file..." +touch "$sdkman_config_file" +echo "sdkman_auto_answer=false" >> "$sdkman_config_file" +if [ -z "$ZSH_VERSION" -a -z "$BASH_VERSION" ]; then + echo "sdkman_auto_complete=false" >> "$sdkman_config_file" +else + echo "sdkman_auto_complete=true" >> "$sdkman_config_file" +fi +echo "sdkman_auto_env=false" >> "$sdkman_config_file" +echo "sdkman_auto_update=true" >> "$sdkman_config_file" +echo "sdkman_beta_channel=false" >> "$sdkman_config_file" +echo "sdkman_checksum_enable=true" >> "$sdkman_config_file" +echo "sdkman_colour_enable=true" >> "$sdkman_config_file" +echo "sdkman_curl_connect_timeout=7" >> "$sdkman_config_file" +echo "sdkman_curl_max_time=10" >> "$sdkman_config_file" +echo "sdkman_debug_mode=false" >> "$sdkman_config_file" +echo "sdkman_insecure_ssl=false" >> "$sdkman_config_file" +echo "sdkman_rosetta2_compatible=false" >> "$sdkman_config_file" +echo "sdkman_selfupdate_feature=true" >> "$sdkman_config_file" + +echo "Download script archive..." +curl --location --progress-bar "${SDKMAN_SERVICE}/broker/download/sdkman/install/${SDKMAN_VERSION}/${SDKMAN_PLATFORM}" > "$sdkman_zip_file" + +ARCHIVE_OK=$(unzip -qt "$sdkman_zip_file" | grep 'No errors detected in compressed data') +if [[ -z "$ARCHIVE_OK" ]]; then + echo "Downloaded zip archive corrupt. Are you connected to the internet?" + echo "" + echo "If problems persist, please ask for help on our Slack:" + echo "* easy sign up: https://slack.sdkman.io/" + echo "* report on channel: https://sdkman.slack.com/app_redirect?channel=user-issues" + rm -rf "$SDKMAN_DIR" + exit 1 +fi + +echo "Extract script archive..." +if [[ "$cygwin" == 'true' ]]; then + echo "Cygwin detected - normalizing paths for unzip..." + sdkman_tmp_folder=$(cygpath -w "$sdkman_tmp_folder") + sdkman_zip_file=$(cygpath -w "$sdkman_zip_file") + sdkman_zip_base_folder=$(cygpath -w "$sdkman_zip_base_folder") +fi +unzip -qo "$sdkman_zip_file" -d "$sdkman_tmp_folder" + +echo "Install scripts..." +mv "${sdkman_zip_base_folder}/"* "$SDKMAN_DIR" +rm -rf "$sdkman_zip_base_folder" + +echo "Set version to $SDKMAN_VERSION ..." +echo "$SDKMAN_VERSION" > "${SDKMAN_DIR}/var/version" + + +if [[ $darwin == true ]]; then + touch "$sdkman_bash_profile" + echo "Attempt update of login bash profile on OSX..." + if [[ -z $(grep 'sdkman-init.sh' "$sdkman_bash_profile") ]]; then + echo -e "\n$sdkman_init_snippet" >> "$sdkman_bash_profile" + echo "Added sdkman init snippet to $sdkman_bash_profile" + fi +else + echo "Attempt update of interactive bash profile on regular UNIX..." + touch "${sdkman_bashrc}" + if [[ -z $(grep 'sdkman-init.sh' "$sdkman_bashrc") ]]; then + echo -e "\n$sdkman_init_snippet" >> "$sdkman_bashrc" + echo "Added sdkman init snippet to $sdkman_bashrc" + fi +fi + +echo "Attempt update of zsh profile..." +touch "$sdkman_zshrc" +if [[ -z $(grep 'sdkman-init.sh' "$sdkman_zshrc") ]]; then + echo -e "\n$sdkman_init_snippet" >> "$sdkman_zshrc" + echo "Updated existing ${sdkman_zshrc}" +fi + + + +echo -e "\n\n\nAll done!\n\n" + +echo "You are subscribed to the STABLE channel." + +echo "" +echo "Please open a new terminal, or run the following in the existing one:" +echo "" +echo " source \"${SDKMAN_DIR}/bin/sdkman-init.sh\"" +echo "" +echo "Then issue the following command:" +echo "" +echo " sdk help" +echo "" +echo "Enjoy!!!"