diff --git a/Makefile b/Makefile index 7e9be6b..1cdad07 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -PLATFORMS := ubuntu-1804 ubuntu-2004 ubuntu-2204 debian-10 debian-11 centos-7 centos-8 rhel-9 opensuse-153 opensuse-154 +PLATFORMS := ubuntu-2004 ubuntu-2204 debian-10 debian-11 debian-12 centos-7 centos-8 rhel-9 opensuse-154 SLS_BINARY ?= ./node_modules/serverless/bin/serverless.js deps: @@ -37,7 +37,7 @@ rebuild-all: deps fetch-serverless-custom-file $(SLS_BINARY) invoke stepf -n rBuilds -d '{"force": true}' serverless-deploy.%: deps fetch-serverless-custom-file - $(SLS_BINARY) deploy --stage $* + $(SLS_BINARY) deploy --stage $* --verbose define GEN_TARGETS docker-build-$(platform): diff --git a/README.md b/README.md index 0521f7c..7503c0a 100644 --- a/README.md +++ b/README.md @@ -19,12 +19,12 @@ bug, or ask questions on [Posit Community](https://community.rstudio.com). R binaries are built for the following Linux operating systems: -- Ubuntu 18.04, 20.04, 22.04 -- Debian 10, 11 +- Ubuntu 20.04, 22.04 +- Debian 10, 11, 12 - CentOS 7 - Red Hat Enterprise Linux 7, 8, 9 -- openSUSE 15.3, 15.4 -- SUSE Linux Enterprise 15 SP3, 15 SP4 +- openSUSE 15.4 +- SUSE Linux Enterprise 15 SP4 Operating systems are supported until their vendor end-of-support dates, which can be found on the [Posit Platform Support](https://posit.co/about/platform-support/) @@ -56,9 +56,6 @@ R_VERSION=4.1.3 Download the deb package: ```bash -# Ubuntu 18.04 -curl -O https://cdn.posit.co/r/ubuntu-1804/pkgs/r-${R_VERSION}_1_amd64.deb - # Ubuntu 20.04 curl -O https://cdn.posit.co/r/ubuntu-2004/pkgs/r-${R_VERSION}_1_amd64.deb @@ -70,6 +67,9 @@ curl -O https://cdn.posit.co/r/debian-10/pkgs/r-${R_VERSION}_1_amd64.deb # Debian 11 curl -O https://cdn.posit.co/r/debian-11/pkgs/r-${R_VERSION}_1_amd64.deb + +# Debian 12 +curl -O https://cdn.posit.co/r/debian-12/pkgs/r-${R_VERSION}_1_amd64.deb ``` Then install the package: @@ -137,9 +137,6 @@ sudo yum install R-${R_VERSION}-1-1.x86_64.rpm Download the rpm package: ```bash -# openSUSE 15.3 / SLES 15 SP3 -curl -O https://cdn.posit.co/r/opensuse-153/pkgs/R-${R_VERSION}-1-1.x86_64.rpm - # openSUSE 15.4 / SLES 15 SP4 curl -O https://cdn.posit.co/r/opensuse-154/pkgs/R-${R_VERSION}-1-1.x86_64.rpm ``` @@ -288,7 +285,7 @@ environment: # snip JOB_DEFINITION_ARN_debian_11: Ref: rBuildsBatchJobDefinitionDebian11 - SUPPORTED_PLATFORMS: ubuntu-1804,debian-10,centos-7,centos-8 + SUPPORTED_PLATFORMS: debian-10,centos-7,centos-8 ``` ### Makefile diff --git a/builder/Dockerfile.debian-12 b/builder/Dockerfile.debian-12 new file mode 100644 index 0000000..5bc8746 --- /dev/null +++ b/builder/Dockerfile.debian-12 @@ -0,0 +1,33 @@ +FROM debian:bookworm + +ENV OS_IDENTIFIER debian-12 + +RUN set -x \ + && export DEBIAN_FRONTEND=noninteractive \ + && echo 'deb-src http://deb.debian.org/debian bookworm main' >> /etc/apt/sources.list \ + && apt-get update \ + && apt-get install -y curl gcc libcurl4-openssl-dev libicu-dev \ + libopenblas0 libpcre2-dev make unzip wget \ + && apt-get build-dep -y r-base + +# Install AWS CLI +RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip" -o "awscliv2.zip" && \ + unzip awscliv2.zip && \ + ./aws/install && \ + rm -rf aws awscliv2.zip + +RUN chmod 0777 /opt + +RUN curl -LO "https://github.com/goreleaser/nfpm/releases/download/v2.18.1/nfpm_$(dpkg --print-architecture).deb" && \ + apt install -y "./nfpm_$(dpkg --print-architecture).deb" && \ + rm "nfpm_$(dpkg --print-architecture).deb" + +# Override the default pager used by R +ENV PAGER /usr/bin/pager + +# R 3.x requires PCRE2 for Pango support on Debian 12 +ENV INCLUDE_PCRE2_IN_R_3 yes + +COPY package.debian-12 /package.sh +COPY build.sh . +ENTRYPOINT ./build.sh diff --git a/builder/Dockerfile.opensuse-153 b/builder/Dockerfile.opensuse-153 deleted file mode 100644 index df3b732..0000000 --- a/builder/Dockerfile.opensuse-153 +++ /dev/null @@ -1,92 +0,0 @@ -FROM opensuse/leap:15.3 - -ENV OS_IDENTIFIER opensuse-153 - -# Most of these packages, and also the configure options that follow were determined -# by reviewing "R-base.spec" from the following OpenSUSE RPM: -# https://download.opensuse.org/repositories/devel:/languages:/R:/released/openSUSE_Leap_42.3/src/R-base-3.5.3-103.1.src.rpm - -RUN zypper --non-interactive update -RUN zypper --non-interactive --gpg-auto-import-keys -n install \ - bzip2 \ - cairo-devel \ - curl \ - fdupes \ - gcc \ - gcc-c++ \ - gcc-fortran \ - glib2-devel \ - glibc-locale \ - help2man \ - # openSUSE/SLES 15.3 originally shipped with ICU 65 (libicu-devel), but later - # added ICU 69 (icu.691-devel) in a patch update. Prefer ICU 69 because the devel - # packages can't coexist, and zypper now resolves libicu-devel to icu.691-devel. - icu.691-devel \ - java-1_8_0-openjdk-devel \ - libX11-devel \ - libXScrnSaver-devel \ - libXmu-devel \ - libXt-devel \ - libbz2-devel \ - libcurl-devel \ - libjpeg-devel \ - libpng-devel \ - libtiff-devel \ - make \ - pango-devel \ - pcre-devel \ - pcre2-devel \ - perl \ - perl-macros \ - python \ - python-pip \ - readline-devel \ - rpm-build \ - shadow \ - tcl-devel \ - texinfo \ - texlive-ae \ - texlive-bibtex \ - texlive-cm-super \ - texlive-dvips \ - texlive-fancyvrb \ - texlive-helvetic \ - texlive-inconsolata \ - texlive-latex \ - texlive-makeindex \ - texlive-metafont \ - texlive-psnfss \ - texlive-tex \ - texlive-times \ - tk-devel \ - unzip \ - wget \ - xdg-utils \ - xorg-x11-devel \ - xz-devel \ - zip \ - zlib-devel \ - && zypper clean - -RUN pip install awscli - -RUN if [ "$(arch)" == "aarch64" ]; then echo arm64; else echo amd64; fi > /tmp/arch - -RUN curl -LO "https://github.com/goreleaser/nfpm/releases/download/v2.18.1/nfpm_$(cat /tmp/arch).rpm" && \ - zypper --non-interactive --no-gpg-checks install "nfpm_$(cat /tmp/arch).rpm" && \ - rm "nfpm_$(cat /tmp/arch).rpm" - -RUN chmod 0777 /opt - -# Configure flags for SUSE that don't use the defaults in build.sh -ENV CONFIGURE_OPTIONS="\ - --enable-R-shlib \ - --with-tcltk \ - --with-x \ - --enable-memory-profiling \ - --with-tcl-config=/usr/lib64/tclConfig.sh \ - --with-tk-config=/usr/lib64/tkConfig.sh" - -COPY package.opensuse-153 /package.sh -COPY build.sh . -ENTRYPOINT ./build.sh diff --git a/builder/Dockerfile.ubuntu-1804 b/builder/Dockerfile.ubuntu-1804 deleted file mode 100644 index 2d0fc61..0000000 --- a/builder/Dockerfile.ubuntu-1804 +++ /dev/null @@ -1,25 +0,0 @@ -FROM ubuntu:bionic - -ENV OS_IDENTIFIER ubuntu-1804 - -RUN set -x \ - && sed -i "s|# deb-src|deb-src|g" /etc/apt/sources.list \ - && export DEBIAN_FRONTEND=noninteractive \ - && apt-get update \ - && apt-get install -y curl libcurl4-openssl-dev libicu-dev libopenblas-base libpcre2-dev wget python-pip \ - && apt-get build-dep -y r-base - -RUN pip install awscli - -RUN curl -LO "https://github.com/goreleaser/nfpm/releases/download/v2.18.1/nfpm_$(dpkg --print-architecture).deb" && \ - apt install -y "./nfpm_$(dpkg --print-architecture).deb" && \ - rm "nfpm_$(dpkg --print-architecture).deb" - -RUN chmod 0777 /opt - -# Override the default pager used by R -ENV PAGER /usr/bin/pager - -COPY package.ubuntu-1804 /package.sh -COPY build.sh . -ENTRYPOINT ./build.sh diff --git a/builder/build.sh b/builder/build.sh index 6c29397..6cee816 100755 --- a/builder/build.sh +++ b/builder/build.sh @@ -64,14 +64,24 @@ fetch_r_source() { rm /tmp/R-${1}.tar.gz } +# Apply a patch for this R version if present. Typically for R-devel. +patch_r() { + cd /tmp/R-${1} + + if [ -f "/patches/R-${1}.patch" ]; then + patch -p1 < "/patches/R-${1}.patch" + fi +} + # compile_r() - $1 as r version compile_r() { - cd /tmp/R-${1} + r_version=${1} + cd "/tmp/R-${r_version}" # tools/config.guess in R versions older than 3.2.2 guess 'unknown' instead of 'pc' # test the version and properly set the flag. build_flag="--build=$(uname -m)-pc-linux-gnu" - if _version_is_greater_than ${R_VERSION} 3.2.2; then + if _version_is_greater_than "${r_version}" 3.2.2; then build_flag='' fi @@ -84,7 +94,7 @@ compile_r() { # https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Using-Fortran # https://gcc.gnu.org/gcc-10/porting_to.html gcc_major_version=$(gcc -dumpversion | cut -d '.' -f 1) - if _version_is_less_than "${R_VERSION}" 3.6.2 && _version_is_greater_than "${gcc_major_version}" 9; then + if _version_is_less_than "${r_version}" 3.6.2 && _version_is_greater_than "${gcc_major_version}" 9; then # Default CFLAGS/FFLAGS for all R 3.x versions is '-g -O2' when using GCC export CFLAGS='-g -O2 -fcommon' export FFLAGS='-g -O2 -fallow-argument-mismatch' @@ -102,7 +112,7 @@ compile_r() { # in R 3.x builds, for distributions where PCRE2 is always required. # In Debian 11/Ubuntu 22/RHEL 9, Pango now depends on PCRE2, so R 3.x will not be compiled with # Pango support if the PCRE2 pkg-config file is missing. - if [[ "${1}" =~ ^3 ]] && pkg-config --exists libpcre2-8 && [ -z "$INCLUDE_PCRE2_IN_R_3" ]; then + if [[ "${r_version}" =~ ^3 ]] && pkg-config --exists libpcre2-8 && [ -z "$INCLUDE_PCRE2_IN_R_3" ]; then mkdir -p /tmp/pcre2 pc_dir=$(pkg-config --variable pcfiledir libpcre2-8) mv ${pc_dir}/libpcre2-8.pc /tmp/pcre2 @@ -111,6 +121,15 @@ compile_r() { trap "{ mv /tmp/pcre2/libpcre2-8.pc ${pc_dir}; mv /tmp/pcre2/pcre2-config ${config_bin}; }" EXIT fi + # Allow libcurl 8.x to be used in R 4.2 and below. Despite a change in major + # version number, libcurl 8 changes neither API nor ABI. This applies the same + # change to configure made in R 4.3.0, replacing exit(1) with exit(0) when + # LIBCURL_VERSION_MAJOR > 7. + # https://github.com/wch/r-source/commit/da6638896413bcbb5970b2335b92582853f94e3c + if _version_is_less_than "${r_version}" 4.3.0; then + sed -i -z 's/#if LIBCURL_VERSION_MAJOR > 7\n exit(1)/#if LIBCURL_VERSION_MAJOR > 7\n exit(0)/' configure + fi + # Default configure options. Some Dockerfiles override this with an ENV directive. default_configure_options="\ --enable-R-shlib \ @@ -194,6 +213,7 @@ _version_is_less_than() { ###### RUN R COMPILE PROCEDURE ###### set_up_environment fetch_r_source $R_VERSION +patch_r $R_VERSION compile_r $R_VERSION package_r $R_VERSION archive_r diff --git a/builder/docker-compose.yml b/builder/docker-compose.yml index 889cb28..8f3bd3d 100644 --- a/builder/docker-compose.yml +++ b/builder/docker-compose.yml @@ -1,16 +1,4 @@ services: - ubuntu-1804: - command: ./build.sh - environment: - - R_VERSION=${R_VERSION} - - R_INSTALL_PATH=${R_INSTALL_PATH} - - LOCAL_STORE=/tmp/output - build: - context: . - dockerfile: Dockerfile.ubuntu-1804 - image: r-builds:ubuntu-1804 - volumes: - - ./integration/tmp:/tmp/output ubuntu-2004: command: ./build.sh environment: @@ -59,7 +47,7 @@ services: image: r-builds:debian-11 volumes: - ./integration/tmp:/tmp/output - centos-7: + debian-12: command: ./build.sh environment: - R_VERSION=${R_VERSION} @@ -67,11 +55,11 @@ services: - LOCAL_STORE=/tmp/output build: context: . - dockerfile: Dockerfile.centos-7 - image: r-builds:centos-7 + dockerfile: Dockerfile.debian-12 + image: r-builds:debian-12 volumes: - ./integration/tmp:/tmp/output - centos-8: + centos-7: command: ./build.sh environment: - R_VERSION=${R_VERSION} @@ -79,11 +67,11 @@ services: - LOCAL_STORE=/tmp/output build: context: . - dockerfile: Dockerfile.centos-8 - image: r-builds:centos-8 + dockerfile: Dockerfile.centos-7 + image: r-builds:centos-7 volumes: - ./integration/tmp:/tmp/output - rhel-9: + centos-8: command: ./build.sh environment: - R_VERSION=${R_VERSION} @@ -91,11 +79,11 @@ services: - LOCAL_STORE=/tmp/output build: context: . - dockerfile: Dockerfile.rhel-9 - image: r-builds:rhel-9 + dockerfile: Dockerfile.centos-8 + image: r-builds:centos-8 volumes: - ./integration/tmp:/tmp/output - opensuse-153: + rhel-9: command: ./build.sh environment: - R_VERSION=${R_VERSION} @@ -103,8 +91,8 @@ services: - LOCAL_STORE=/tmp/output build: context: . - dockerfile: Dockerfile.opensuse-153 - image: r-builds:opensuse-153 + dockerfile: Dockerfile.rhel-9 + image: r-builds:rhel-9 volumes: - ./integration/tmp:/tmp/output opensuse-154: diff --git a/builder/package.ubuntu-1804 b/builder/package.debian-12 similarity index 81% rename from builder/package.ubuntu-1804 rename to builder/package.debian-12 index a5a75ae..c7673d5 100644 --- a/builder/package.ubuntu-1804 +++ b/builder/package.debian-12 @@ -4,17 +4,18 @@ if [[ ! -d /tmp/output/${OS_IDENTIFIER} ]]; then mkdir -p "/tmp/output/${OS_IDENTIFIER}" fi -# R 3.x requires PCRE1 -pcre_lib='libpcre2-dev' +# R 3.x requires PCRE1. On Debian 12, R 3.x also requires PCRE2 for Pango support. +pcre_libs='- libpcre2-dev' if [[ "${R_VERSION}" =~ ^3 ]]; then - pcre_lib='libpcre3-dev' + pcre_libs='- libpcre2-dev +- libpcre3-dev' fi cat < /tmp/nfpm.yml name: r-${R_VERSION} version: 1 version_schema: none -section: universe/math +section: gnu-r arch: $(dpkg --print-architecture) priority: optional maintainer: Posit Software, PBC @@ -27,27 +28,27 @@ deb: fields: Bugs: https://github.com/rstudio/r-builds/issues depends: +- ca-certificates - g++ - gcc - gfortran - libbz2-dev - libc6 - libcairo2 -- libcurl4 +- libcurl4-openssl-dev - libglib2.0-0 - libgomp1 - libicu-dev -- libjpeg8 - liblzma-dev - libopenblas-dev - libpango-1.0-0 - libpangocairo-1.0-0 - libpaper-utils -- ${pcre_lib} +${pcre_libs} - libpng16-16 -- libreadline7 +- libreadline8 - libtcl8.6 -- libtiff5 +- libtiff6 - libtk8.6 - libx11-6 - libxt6 diff --git a/builder/package.opensuse-153 b/builder/package.opensuse-153 deleted file mode 100644 index 0f1779b..0000000 --- a/builder/package.opensuse-153 +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash - -if [[ ! -d /tmp/output/${OS_IDENTIFIER} ]]; then - mkdir -p "/tmp/output/${OS_IDENTIFIER}" -fi - -# R 3.x requires PCRE1 -pcre_lib='pcre2-devel' -if [[ "${R_VERSION}" =~ ^3 ]]; then - pcre_lib='pcre-devel' -fi - -# create post-install script required for openblas -cat <> /post-install.sh -mv ${R_INSTALL_PATH}/lib/R/lib/libRblas.so ${R_INSTALL_PATH}/lib/R/lib/libRblas.so.keep -ln -s /usr/lib64/libopenblas.so ${R_INSTALL_PATH}/lib/R/lib/libRblas.so -EOF - -# create after-remove script to remove internal blas -cat <> /after-remove.sh -if [ -d ${R_INSTALL_PATH} ]; then - rm -r ${R_INSTALL_PATH} -fi -EOF - -if [ "$(arch)" == "aarch64" ]; then echo arm64; else echo amd64; fi > /tmp/arch - -cat < /tmp/nfpm.yml -name: R-${R_VERSION} -version: 1 -version_schema: none -arch: $(cat /tmp/arch) -release: 1 -maintainer: Posit Software, PBC -description: | - GNU R statistical computation and graphics system -vendor: Posit Software, PBC -homepage: https://www.r-project.org -license: GPLv2+ -depends: -- fontconfig -- gcc -- gcc-c++ -- gcc-fortran -- glibc-locale -- gzip -- icu.691-devel -- libbz2-devel -- libcairo2 -- libcurl-devel -- libfreetype6 -- libgomp1 -- libjpeg62 -- libpango-1_0-0 -- libreadline7 -- libtiff5 -- make -- openblas-devel -- ${pcre_lib} -- tar -- tcl -- tk -- unzip -- which -- xorg-x11 -- xorg-x11-fonts-100dpi -- xorg-x11-fonts-75dpi -- xz-devel -- zip -- zlib-devel -contents: -- src: ${R_INSTALL_PATH} - dst: ${R_INSTALL_PATH} -scripts: - postinstall: /post-install.sh - postremove: /after-remove.sh -EOF - -nfpm package \ - -f /tmp/nfpm.yml \ - -p rpm \ - -t "/tmp/output/${OS_IDENTIFIER}" - -export PKG_FILE=$(ls /tmp/output/${OS_IDENTIFIER}/R-${R_VERSION}*.rpm | head -1) diff --git a/deploy.Jenkinsfile b/deploy.Jenkinsfile index 7abcd19..375c674 100644 --- a/deploy.Jenkinsfile +++ b/deploy.Jenkinsfile @@ -3,12 +3,18 @@ pipeline { dockerfile { dir 'jenkins' label 'docker' + // Required for the serverless-python-requirements plugin to install + // Python requirements using the AWS build images, running Docker inside Docker. additionalBuildArgs '--build-arg DOCKER_GID=$(stat -c %g /var/run/docker.sock) --build-arg JENKINS_UID=$(id -u jenkins) --build-arg JENKINS_GID=$(id -g jenkins)' args '-v /var/run/docker.sock:/var/run/docker.sock --group-add docker' } } environment { - HOME = "." + // Set HOME to the workspace for the serverless-python-requirements plugin. + // The plugin uses HOME for its default cache location, which needs to be + // mounted in the separate Python build container. This needs to be an absolute + // path that also exists on the host since we're mounting the Docker socket. + HOME = "${env.WORKSPACE}" } options { ansiColor('xterm') diff --git a/serverless-resources.yml b/serverless-resources.yml index efb43b2..cd846bf 100644 --- a/serverless-resources.yml +++ b/serverless-resources.yml @@ -131,20 +131,6 @@ rBuildsBatchJobQueue: State: ENABLED Priority: 1 -rBuildsBatchJobDefinitionUbuntu1804: - Type: AWS::Batch::JobDefinition - Properties: - Type: container - ContainerProperties: - Command: - - ./build.sh - Vcpus: 4 - Memory: 4096 - JobRoleArn: - "Fn::GetAtt": [ rBuildsEcsTaskIamRole, Arn ] - Image: "#{AWS::AccountId}.dkr.ecr.#{AWS::Region}.amazonaws.com/r-builds:ubuntu-1804" - Timeout: - AttemptDurationSeconds: 7200 rBuildsBatchJobDefinitionUbuntu2004: Type: AWS::Batch::JobDefinition Properties: @@ -201,7 +187,7 @@ rBuildsBatchJobDefinitionDebian11: Image: "#{AWS::AccountId}.dkr.ecr.#{AWS::Region}.amazonaws.com/r-builds:debian-11" Timeout: AttemptDurationSeconds: 7200 -rBuildsBatchJobDefinitionCentos7: +rBuildsBatchJobDefinitionDebian12: Type: AWS::Batch::JobDefinition Properties: Type: container @@ -212,10 +198,10 @@ rBuildsBatchJobDefinitionCentos7: Memory: 4096 JobRoleArn: "Fn::GetAtt": [ rBuildsEcsTaskIamRole, Arn ] - Image: "#{AWS::AccountId}.dkr.ecr.#{AWS::Region}.amazonaws.com/r-builds:centos-7" + Image: "#{AWS::AccountId}.dkr.ecr.#{AWS::Region}.amazonaws.com/r-builds:debian-12" Timeout: AttemptDurationSeconds: 7200 -rBuildsBatchJobDefinitionCentos8: +rBuildsBatchJobDefinitionCentos7: Type: AWS::Batch::JobDefinition Properties: Type: container @@ -226,10 +212,10 @@ rBuildsBatchJobDefinitionCentos8: Memory: 4096 JobRoleArn: "Fn::GetAtt": [ rBuildsEcsTaskIamRole, Arn ] - Image: "#{AWS::AccountId}.dkr.ecr.#{AWS::Region}.amazonaws.com/r-builds:centos-8" + Image: "#{AWS::AccountId}.dkr.ecr.#{AWS::Region}.amazonaws.com/r-builds:centos-7" Timeout: AttemptDurationSeconds: 7200 -rBuildsBatchJobDefinitionRhel9: +rBuildsBatchJobDefinitionCentos8: Type: AWS::Batch::JobDefinition Properties: Type: container @@ -240,10 +226,10 @@ rBuildsBatchJobDefinitionRhel9: Memory: 4096 JobRoleArn: "Fn::GetAtt": [ rBuildsEcsTaskIamRole, Arn ] - Image: "#{AWS::AccountId}.dkr.ecr.#{AWS::Region}.amazonaws.com/r-builds:rhel-9" + Image: "#{AWS::AccountId}.dkr.ecr.#{AWS::Region}.amazonaws.com/r-builds:centos-8" Timeout: AttemptDurationSeconds: 7200 -rBuildsBatchJobDefinitionOpensuse153: +rBuildsBatchJobDefinitionRhel9: Type: AWS::Batch::JobDefinition Properties: Type: container @@ -254,7 +240,7 @@ rBuildsBatchJobDefinitionOpensuse153: Memory: 4096 JobRoleArn: "Fn::GetAtt": [ rBuildsEcsTaskIamRole, Arn ] - Image: "#{AWS::AccountId}.dkr.ecr.#{AWS::Region}.amazonaws.com/r-builds:opensuse-153" + Image: "#{AWS::AccountId}.dkr.ecr.#{AWS::Region}.amazonaws.com/r-builds:rhel-9" Timeout: AttemptDurationSeconds: 7200 rBuildsBatchJobDefinitionOpensuse154: diff --git a/serverless.yml b/serverless.yml index f7d93d8..3b4af82 100644 --- a/serverless.yml +++ b/serverless.yml @@ -11,7 +11,10 @@ package: - integration/** - builder/** - docs/** + # Generated files by other tools - node_modules/** + - .npm/** + - .cache/** provider: name: aws @@ -42,8 +45,6 @@ provider: Ref: rBuildsTopic JOB_QUEUE_ARN: Ref: rBuildsBatchJobQueue - JOB_DEFINITION_ARN_ubuntu_1804: - Ref: rBuildsBatchJobDefinitionUbuntu1804 JOB_DEFINITION_ARN_ubuntu_2004: Ref: rBuildsBatchJobDefinitionUbuntu2004 JOB_DEFINITION_ARN_ubuntu_2204: @@ -52,17 +53,17 @@ provider: Ref: rBuildsBatchJobDefinitionDebian10 JOB_DEFINITION_ARN_debian_11: Ref: rBuildsBatchJobDefinitionDebian11 + JOB_DEFINITION_ARN_debian_12: + Ref: rBuildsBatchJobDefinitionDebian12 JOB_DEFINITION_ARN_centos_7: Ref: rBuildsBatchJobDefinitionCentos7 JOB_DEFINITION_ARN_centos_8: Ref: rBuildsBatchJobDefinitionCentos8 JOB_DEFINITION_ARN_rhel_9: Ref: rBuildsBatchJobDefinitionRhel9 - JOB_DEFINITION_ARN_opensuse_153: - Ref: rBuildsBatchJobDefinitionOpensuse153 JOB_DEFINITION_ARN_opensuse_154: Ref: rBuildsBatchJobDefinitionOpensuse154 - SUPPORTED_PLATFORMS: ubuntu-1804,ubuntu-2004,ubuntu-2204,debian-10,debian-11,centos-7,centos-8,rhel-9,opensuse-153,opensuse-154 + SUPPORTED_PLATFORMS: ubuntu-2004,ubuntu-2204,debian-10,debian-11,debian-12,centos-7,centos-8,rhel-9,opensuse-154 functions: queueBuilds: diff --git a/test/docker-compose.yml b/test/docker-compose.yml index db2dc3f..f44e77e 100644 --- a/test/docker-compose.yml +++ b/test/docker-compose.yml @@ -1,12 +1,4 @@ services: - ubuntu-1804: - image: ubuntu:bionic - command: /r-builds/test/test-apt.sh - environment: - - OS_IDENTIFIER=ubuntu-1804 - - R_VERSION=${R_VERSION} - volumes: - - ../:/r-builds ubuntu-2004: image: ubuntu:focal command: /r-builds/test/test-apt.sh @@ -23,6 +15,14 @@ services: - R_VERSION=${R_VERSION} volumes: - ../:/r-builds + debian-12: + image: debian:bookworm + command: /r-builds/test/test-apt.sh + environment: + - OS_IDENTIFIER=debian-12 + - R_VERSION=${R_VERSION} + volumes: + - ../:/r-builds debian-11: image: debian:bullseye command: /r-builds/test/test-apt.sh @@ -63,14 +63,6 @@ services: - R_VERSION=${R_VERSION} volumes: - ../:/r-builds - opensuse-153: - image: opensuse/leap:15.3 - command: /r-builds/test/test-zypper.sh - environment: - - OS_IDENTIFIER=opensuse-153 - - R_VERSION=${R_VERSION} - volumes: - - ../:/r-builds opensuse-154: image: opensuse/leap:15.4 command: /r-builds/test/test-zypper.sh