diff --git a/.github/workflows/platform_natives.yaml b/.github/workflows/platform_natives.yaml index a976b50..0dea897 100644 --- a/.github/workflows/platform_natives.yaml +++ b/.github/workflows/platform_natives.yaml @@ -213,7 +213,7 @@ jobs: uses: docker/setup-buildx-action@v2 - name: Build uses: docker/build-push-action@v4 - if: matrix.os == 'ubuntu-22.04' && !(matrix.debianArch == 'amd64' && matrix.ssl == 'ssl1') + if: matrix.os == 'ubuntu-22.04' with: context: . push: false @@ -229,24 +229,6 @@ jobs: DEBIAN_VERSION=${{env.DEBIAN_VERSION}} cache-from: type=gha cache-to: type=gha,mode=max - - name: Build - uses: docker/build-push-action@v4 - if: matrix.os == 'ubuntu-22.04' && matrix.debianArch == 'amd64' && matrix.ssl == 'ssl1' - with: - context: . - push: false - file: tdlight.${{env.DEBIAN_ARCH}}.${{env.SSL}}.${{env.COMPILER}}.dockerfile - tags: tdlight.${{env.DEBIAN_ARCH}}.${{env.SSL}}.${{env.COMPILER}} - build-args: | - SCCACHE_GHA_ENABLED=on - ACTIONS_CACHE_URL=${{env.ACTIONS_CACHE_URL}} - ACTIONS_RUNTIME_TOKEN=${{env.ACTIONS_RUNTIME_TOKEN}} - ARCH_DEBIAN=${{env.DEBIAN_ARCH}} - ARCH_TRIPLE=${{env.TRIPLE_ARCH}} - TRIPLE_GNU=${{env.TRIPLE_GNU}} - DEBIAN_VERSION=${{env.DEBIAN_VERSION}} - cache-from: type=gha - cache-to: type=gha,mode=max - name: Copy built files from docker if: matrix.os == 'ubuntu-22.04' shell: bash diff --git a/tdlight.amd64.ssl1.gnu.dockerfile b/tdlight.amd64.ssl1.gnu.dockerfile deleted file mode 100644 index d162c7a..0000000 --- a/tdlight.amd64.ssl1.gnu.dockerfile +++ /dev/null @@ -1,142 +0,0 @@ -FROM debian:buster-backports AS ssl1_debian -WORKDIR /build -SHELL ["/bin/bash", "-exc"] - -ARG REVISION="1.0.0.0-SNAPSHOT" -ARG SCCACHE_GHA_ENABLED=off -ARG ACTIONS_CACHE_URL -ARG ACTIONS_RUNTIME_TOKEN - -RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache - -ENV DEBIAN_FRONTEND=noninteractive -COPY .docker ./.docker -# Install sccache to greatly speedup builds in the CI -RUN --mount=type=cache,target=/opt/sccache,sharing=locked --mount=type=cache,target=/var/lib/apt,sharing=locked --mount=type=cache,target=/var/cache/sccache,sharing=locked .docker/install-sccache.sh - -RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ ---mount=type=cache,target=/var/lib/apt,sharing=locked \ ---mount=type=cache,target=/var/cache/sccache,sharing=locked <<"EOF" -apt-get --assume-yes update -apt-get --assume-yes -o Dpkg::Options::="--force-overwrite" install --no-install-recommends \ - openjdk-11-jdk-headless \ - g++-8 gcc-8 zlib1g-dev libssl-dev gperf \ - tree git maven php-cli php-readline make cmake - -EOF - -FROM ssl1_debian AS build -SHELL ["/bin/bash", "-exc"] -ARG REVISION="1.0.0.0-SNAPSHOT" -ARG SCCACHE_GHA_ENABLED=off -ARG ACTIONS_CACHE_URL -ARG ACTIONS_RUNTIME_TOKEN - -ENV TOOLCHAIN_FILE="toolchain.cmake" -ENV SCCACHE_DIR=/var/cache/sccache - -# machine-specific flags -ENV HOST_CMAKE_C_COMPILER="/usr/bin/gcc-8" -ENV HOST_CMAKE_CXX_COMPILER="/usr/bin/g++-8" -ENV HOST_CMAKE_C_FLAGS="" -ENV HOST_CMAKE_CXX_FLAGS="${HOST_CMAKE_C_FLAGS}" -ENV HOST_CMAKE_EXE_LINKER_FLAGS="" - -# Use c++11 -ENV CMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -std=c++14" - -ENV CMAKE_C_FLAGS="${CMAKE_C_FLAGS}" -ENV CMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti" -ENV CMAKE_SHARED_LINKER_FLAGS="${CMAKE_SHARED_LINKER_FLAGS} -Wl,--gc-sections -Wl,--exclude-libs,ALL" -ENV CMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -O3" -ENV CCACHE=/opt/sccache/sccache -ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 - -COPY --link . ./ - -RUN --mount=type=cache,target=/opt/sccache,sharing=locked \ ---mount=type=cache,target=/var/cache/sccache,sharing=locked \ ---mount=type=cache,target=/root/.m2 <<"EOF" -rm -rf implementations/tdlight/td_tools_build implementations/tdlight/build api/target-legacy api/target api/.ci-friendly-pom.xml implementations/tdlight/td/generate/auto natives/src/main/java/it/tdlight/jni natives/build natives/tdjni_bin natives/tdjni_docs -mkdir -p implementations/tdlight/build implementations/tdlight/build/td_bin/bin implementations/tdlight/td_tools_build/java/it/tdlight/jni api/src/main/java-legacy/it/tdlight/jni api/src/main/java-sealed/it/tdlight/jni natives/src/main/java/it/tdlight/jni natives/build natives/tdjni_bin natives/tdjni_docs -cd implementations/tdlight/td_tools_build -CC="$HOST_CMAKE_C_COMPILER" CXX="$HOST_CMAKE_CXX_COMPILER" cmake \ - -DCMAKE_C_COMPILER="${HOST_CMAKE_C_COMPILER}" \ - -DCMAKE_CXX_COMPILER="${HOST_CMAKE_CXX_COMPILER}" \ - -DCMAKE_C_FLAGS="${CMAKE_C_FLAGS} ${HOST_CMAKE_C_FLAGS}" \ - -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} ${HOST_CMAKE_CXX_FLAGS}" \ - -DCMAKE_EXE_LINKER_FLAGS="${CMAKE_EXE_LINKER_FLAGS} ${HOST_CMAKE_EXE_LINKER_FLAGS}" \ - -DJAVA_AWT_LIBRARY="/dev/null" \ - -DJAVA_AWT_INCLUDE_PATH="/dev/null" \ - \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER_LAUNCHER="$CCACHE" \ - -DCMAKE_CXX_COMPILER_LAUNCHER="$CCACHE" \ - -DCMAKE_C_FLAGS_RELEASE="" \ - -DCMAKE_CXX_FLAGS_RELEASE="-O0 -DNDEBUG" \ - -DTD_ENABLE_LTO=OFF \ - -DTD_ENABLE_JNI=ON .. -cmake --build . --target prepare_cross_compiling --parallel "$(nproc)" -cmake --build . --target td_generate_java_api --parallel "$(nproc)" -cd ../../../ - -./implementations/tdlight/td_tools_build/td/generate/td_generate_java_api TdApi "./implementations/tdlight/td/generate/auto/tlo/td_api.tlo" "./natives/src/main/java" "it/tdlight/jni" -EOF - -RUN --mount=type=cache,target=/opt/sccache,sharing=locked \ ---mount=type=cache,target=/var/cache/sccache,sharing=locked \ ---mount=type=cache,target=/root/.m2 <<"EOF" -cd implementations/tdlight/build -export INSTALL_PREFIX="$(readlink -e ./td_bin/)" -export INSTALL_BINDIR="$(readlink -e ./td_bin/bin)" -cmake \ - -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER_LAUNCHER="$CCACHE" \ - -DCMAKE_CXX_COMPILER_LAUNCHER="$CCACHE" \ - -DTD_SKIP_BENCHMARK=ON -DTD_SKIP_TEST=ON -DTD_SKIP_TG_CLI=ON \ - -DTD_ENABLE_LTO=ON \ - -DTD_ENABLE_JNI=ON \ - -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_PREFIX" \ - -DCMAKE_INSTALL_BINDIR:PATH="$INSTALL_BINDIR" \ - -DCMAKE_TOOLCHAIN_FILE="../../../${TOOLCHAIN_FILE}" .. -cmake --build . --target install --config Release --parallel "$(nproc)" -cd ../../../ - -cd natives/build -cmake \ - -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER_LAUNCHER="$CCACHE" \ - -DCMAKE_CXX_COMPILER_LAUNCHER="$CCACHE" \ - -DTD_GENERATED_BINARIES_DIR="$(readlink -e ../../implementations/tdlight/td_tools_build/td/generate)" \ - -DTD_SRC_DIR="$(readlink -e ../../implementations/tdlight)" \ - -DTD_ENABLE_LTO=ON \ - -DTDNATIVES_BIN_DIR="$(readlink -e ../tdjni_bin/)" \ - -DTDNATIVES_DOCS_BIN_DIR="$(readlink -e ../tdjni_docs/)" \ - -DTd_DIR:PATH="$(readlink -e ../../implementations/tdlight/build/td_bin/lib/cmake/Td)" \ - -DJAVA_SRC_DIR="$(readlink -e ../src/main/java)" \ - -DTDNATIVES_CPP_SRC_DIR="$(readlink -e ../src/main/cpp)" \ - -DCMAKE_TOOLCHAIN_FILE="../../${TOOLCHAIN_FILE}" \ - ../src/main/cpp -cmake --build . --target install --config Release --parallel "$(nproc)" -cd .. -mkdir -p src/main/resources/META-INF/tdlightjni/ -mv tdjni_bin/libtdjni.so src/main/resources/META-INF/tdlightjni/libtdjni.linux_amd64_gnu_ssl1.so -mvn -B -f pom.xml -Drevision="$REVISION" -Dnative.type.classifier=linux_amd64_gnu_ssl1 package -EOF - -FROM debian:buster-backports AS maven -SHELL ["/bin/bash", "-exc"] -WORKDIR /source -COPY --from=build /build/natives /source/natives -ENTRYPOINT ["/bin/true"] - -FROM debian:buster-backports -ARG REVISION="1.0.0.0-SNAPSHOT" -WORKDIR /out -COPY --from=build /build/natives natives -COPY --from=build /build/natives/src/main/resources/META-INF/tdlightjni/libtdjni.linux_amd64_gnu_ssl1.so libtdjni.so -COPY --from=build /build/natives/target-linux_amd64_gnu_ssl1/tdlight-natives-${REVISION}-linux_amd64_gnu_ssl1.jar tdlight-natives.jar -USER 65534:65534 -ENTRYPOINT ["/bin/true"] diff --git a/tdlight.arch.ssl1.gnu.dockerfile b/tdlight.arch.ssl1.gnu.dockerfile index 31d319d..9a7d5a8 100644 --- a/tdlight.arch.ssl1.gnu.dockerfile +++ b/tdlight.arch.ssl1.gnu.dockerfile @@ -41,7 +41,7 @@ apt-get --assume-yes -o Dpkg::Options::="--force-overwrite" install --no-install apt-get --assume-yes -o Dpkg::Options::="--force-overwrite" install --no-install-recommends \ g++-8 gcc-8 zlib1g-dev libssl-dev gperf \ tree git maven php-cli php-readline make cmake \ - g++-8-${ARCH_TRIPLE}-linux-${TRIPLE_GNU} gcc-8-${ARCH_TRIPLE}-linux-${TRIPLE_GNU} \ + g++-8-${ARCH_TRIPLE/_/-}-linux-${TRIPLE_GNU} gcc-8-${ARCH_TRIPLE/_/-}-linux-${TRIPLE_GNU} \ libatomic1-${ARCH_DEBIAN}-cross libc6-dev-${ARCH_DEBIAN}-cross libgcc-8-dev-${ARCH_DEBIAN}-cross libstdc++-8-dev-${ARCH_DEBIAN}-cross EOF diff --git a/tdlight.arch.ssl3.gnu.dockerfile b/tdlight.arch.ssl3.gnu.dockerfile index 9a9cfb1..f5591c3 100644 --- a/tdlight.arch.ssl3.gnu.dockerfile +++ b/tdlight.arch.ssl3.gnu.dockerfile @@ -43,7 +43,7 @@ apt-get --assume-yes -o Dpkg::Options::="--force-overwrite" install --no-install apt-get --assume-yes -o Dpkg::Options::="--force-overwrite" install --no-install-recommends \ g++-12 gcc-12 zlib1g-dev libssl-dev gperf \ tree git maven php-cli php-readline make cmake \ - g++-12-${ARCH_TRIPLE}-linux-${TRIPLE_GNU} gcc-12-${ARCH_TRIPLE}-linux-${TRIPLE_GNU} \ + g++-12-${ARCH_TRIPLE/_/-}-linux-${TRIPLE_GNU} gcc-12-${ARCH_TRIPLE/_/-}-linux-${TRIPLE_GNU} \ libatomic1-${ARCH_DEBIAN}-cross libc6-dev-${ARCH_DEBIAN}-cross libgcc-12-dev-${ARCH_DEBIAN}-cross libstdc++-12-dev-${ARCH_DEBIAN}-cross EOF