refactor: update to node 22

refactor: remove deprecated "jetifier"
refactor: base migration to Angular v18
fix: angular warning
refactor: update capacitor to v6
refactor: update ngx-markdown to v18
refactor: update to ionic v8
refactor: remove deprecated @ionic-native/core (replaced by @awesome-cordova-plugins/core)
fix: build
fix: test
feat: temporarily use external node image in ci
feat: update to node 22
refactor: rebase
fix: prettier depencencies
ci: update android commandline tools
fix: prettier package type
ci: let pnpm handle build dependencies
refactor: revert to pnpm 8, angular 17
This commit is contained in:
2024-05-30 13:30:01 +02:00
committed by Rainer Killinger
parent ef4e1f8ded
commit 77f41e1b15
43 changed files with 2750 additions and 4029 deletions

View File

@@ -1,5 +1,5 @@
### Set base image
FROM ubuntu:20.04
FROM ubuntu:22.04
LABEL version="2.0.0" \
description="Build environment for the StApps app." \
@@ -8,18 +8,19 @@ LABEL version="2.0.0" \
### Configure versions to install
ENV ANDROID_APIS="android-34" \
ANDROID_BUILD_TOOLS_VERSION="34.0.0" \
NODE_VERSION="22.x" \
NPM_VERSION="^10.0.0" \
IONIC_VERSION="^6.0.0" \
IONIC_VERSION="^7.0.0" \
CAPACITOR_VERSION="^6.0.0" \
CORDOVA_RES_VERSION="latest" \
### Configure download URLs
ANDROID_SDK_TOOLS_DOWNLOAD_URL="https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip" \
ANDROID_SDK_TOOLS_DOWNLOAD_URL="https://dl.google.com/android/repository/commandlinetools-linux-13114758_latest.zip" \
GOOGLE_SIGNING_KEY_URL="https://dl-ssl.google.com/linux/linux_signing_key.pub" \
GOOGLE_CHROME_REPOSITORY_URL="http://dl.google.com/linux/chrome/deb/" \
### Android SDK path
ANDROID_SDK_ROOT="/opt/android-sdk" \
### Installation files
SCRIPTS_DIRECTORY="scripts" \
NODE_SETUP_SCRIPT="node_setup.sh" \
TMP_PROJECT_NAME="tmp-project"
### Set $PATH
@@ -43,7 +44,7 @@ RUN apt-get update && \
git \
gradle \
ca-certificates-java \
python \
python3 \
python3-pip \
software-properties-common \
ssh \
@@ -54,9 +55,9 @@ RUN apt-get update && \
musl-dev \
&& rm -rf /var/lib/apt/lists/*
### Install Java Development Kit 17
### Install Java Development Kit 21
RUN add-apt-repository -y ppa:openjdk-r/ppa && apt-get update && \
apt-get install --no-install-recommends -y openjdk-17-jdk \
apt-get install --no-install-recommends -y openjdk-21-jdk \
&& rm -rf /var/lib/apt/lists/*
### Setup the locale
@@ -96,18 +97,18 @@ RUN curl $ANDROID_SDK_TOOLS_DOWNLOAD_URL > /tmp/android-sdk.zip && \
sdkmanager "platforms;$ANDROID_APIS" "build-tools;$ANDROID_BUILD_TOOLS_VERSION"
### Copy scripts directory into the tmp folder, so it's available to the following commands
COPY $SCRIPTS_DIRECTORY/$NODE_SETUP_SCRIPT /tmp/
RUN bash /tmp/$NODE_SETUP_SCRIPT && apt-get install -y nodejs && \
RUN curl -fsSL https://deb.nodesource.com/setup_${NODE_VERSION} | bash && \
apt-get install -y nodejs && \
### Install wanted npm version
npm install -g --unsafe-perm npm@$NPM_VERSION && \
### Install needed global npm packages
npm install -g --unsafe-perm @ionic/cli@$IONIC_VERSION cordova-res@$CORDOVA_RES_VERSION
npm install -g --unsafe-perm @ionic/cli@$IONIC_VERSION cordova-res@$CORDOVA_RES_VERSION @capacitor/cli@$CAPACITOR_VERSION
RUN cd / && ionic start $TMP_PROJECT_NAME blank --type=angular --capacitor --no-git --no-interactive && \
cd $TMP_PROJECT_NAME && ionic capacitor add android && export NG_CLI_ANALYTICS=ci && ionic capacitor build android --no-open && \
cd android && ./gradlew assembleDebug && \
cd / && rm -rf $TMP_PROJECT_NAME
cd $TMP_PROJECT_NAME && ionic capacitor add android && export NG_CLI_ANALYTICS=ci && ionic capacitor build android --no-open && \
cd android && ./gradlew assembleDebug && \
cd / && rm -rf $TMP_PROJECT_NAME
### Compatibility with musl libc