Skip to content

Commit 9e91d03

Browse files
committed
Test arm
1 parent fe0ef1c commit 9e91d03

File tree

3 files changed

+41
-145
lines changed

3 files changed

+41
-145
lines changed

.github/scripts/win-check.sh

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,19 @@ set -e
44
set -x
55

66
# Put pdflatex on the path (needed only for CMD check)
7+
if [ "$( uname -s | grep ARM)" ]; then
8+
export PATH="/c/aarch64-w64-mingw32.static.posix/bin:$PATH:/c/Users/$USER/AppData/Roaming/TinyTeX/bin/windows:$HOME/AppData/Local/Programs/MiKTeX/miktex/bin/x64:/c/progra~1/MiKTeX/miktex/bin/x64:/c/progra~1/MiKTeX 2.9/miktex/bin/x64"
9+
clang --version
10+
else
711
export PATH="/c/x86_64-w64-mingw32.static.posix/bin:$PATH:/c/Users/$USER/AppData/Roaming/TinyTeX/bin/windows:$HOME/AppData/Local/Programs/MiKTeX/miktex/bin/x64:/c/progra~1/MiKTeX/miktex/bin/x64:/c/progra~1/MiKTeX 2.9/miktex/bin/x64"
12+
gcc --version
13+
fi
814
echo "PATH: $PATH"
915
pdflatex --version
1016
texindex --version
1117
texi2any --version
1218
make --version
1319
perl --version
14-
gcc --version
1520

1621
# Extra steps to prepare SVN build (rather than official tarball)
1722
cd "$(cygpath ${GITHUB_WORKSPACE})"
@@ -22,11 +27,17 @@ curl -sSL https://curl.se/ca/cacert.pem > etc/curl-ca-bundle.crt
2227
./.github/scripts/svn-info.sh
2328

2429
# Download the TCL bundle required by tcltk package
25-
curl -OL https://github.com/r-windows/rtools-chocolatey/releases/download/6104/tcltk-6104-6025.zip
26-
unzip tcltk-6104-6025.zip
30+
if [ "$( uname -s | grep ARM)" ]; then
31+
echo "USE_LLVM = 1" >> src/gnuwin32/MkRules.local
32+
curl -OL https://github.com/r-windows/rtools-chocolatey/releases/download/6536/tcltk-aarch64-6536-6492.zip
33+
unzip tcltk-aarch64-6536-6492.zip
34+
else
35+
curl -OL https://github.com/r-windows/rtools-chocolatey/releases/download/6536/tcltk-6536-6492.zip
36+
unzip tcltk-6536-6492.zip
37+
fi
2738

2839
# Add custom flags to MkRules.local
29-
cp .github/scripts/MkRules.local src/gnuwin32/
40+
#cp .github/scripts/MkRules.local src/gnuwin32/
3041
cd src/gnuwin32
3142

3243
# Build just the core pieces (no installer)

.github/scripts/win-installer.sh

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,19 @@ set -e
44
set -x
55

66
# Put pdflatex on the path (needed only for CMD check)
7+
if [ "$( uname -s | grep ARM)" ]; then
8+
export PATH="/c/aarch64-w64-mingw32.static.posix/bin:$PATH:/c/Users/$USER/AppData/Roaming/TinyTeX/bin/windows:$HOME/AppData/Local/Programs/MiKTeX/miktex/bin/x64:/c/progra~1/MiKTeX/miktex/bin/x64:/c/progra~1/MiKTeX 2.9/miktex/bin/x64"
9+
clang --version
10+
else
711
export PATH="/c/x86_64-w64-mingw32.static.posix/bin:$PATH:/c/Users/$USER/AppData/Roaming/TinyTeX/bin/windows:$HOME/AppData/Local/Programs/MiKTeX/miktex/bin/x64:/c/progra~1/MiKTeX/miktex/bin/x64:/c/progra~1/MiKTeX 2.9/miktex/bin/x64"
12+
gcc --version
13+
fi
814
echo "PATH: $PATH"
915
pdflatex --version
1016
texindex --version
1117
texi2any --version
1218
make --version
1319
perl --version
14-
gcc --version
1520

1621
# Extra steps to prepare SVN build (rather than official tarball)
1722
cd "$(cygpath ${GITHUB_WORKSPACE})"
@@ -23,11 +28,17 @@ curl -sSL https://curl.se/ca/cacert.pem > etc/curl-ca-bundle.crt
2328

2429
# Download the TCL bundle required by tcltk package
2530
#curl -OL https://cran.r-project.org/bin/windows/Rtools/rtools43/files/tcltk-5493-5412.zip
26-
curl -OL https://github.com/r-windows/rtools-chocolatey/releases/download/5948/Tcl-5948-5877.zip
27-
unzip Tcl-5948-5877.zip
31+
if [ "$( uname -s | grep ARM)" ]; then
32+
echo "USE_LLVM = 1" >> src/gnuwin32/MkRules.local
33+
curl -OL https://github.com/r-windows/rtools-chocolatey/releases/download/6536/tcltk-aarch64-6536-6492.zip
34+
unzip tcltk-aarch64-6536-6492.zip
35+
else
36+
curl -OL https://github.com/r-windows/rtools-chocolatey/releases/download/6536/tcltk-6536-6492.zip
37+
unzip tcltk-6536-6492.zip
38+
fi
2839

2940
# Add custom flags to MkRules.local
30-
cp .github/scripts/MkRules.local src/gnuwin32/
41+
#cp .github/scripts/MkRules.local src/gnuwin32/
3142
cd src/gnuwin32
3243

3344
# Build just the installer

.github/workflows/build-svn.yaml

Lines changed: 11 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -7,140 +7,9 @@ concurrency:
77
cancel-in-progress: true
88

99
jobs:
10-
linux:
11-
name: Linux
12-
runs-on: ubuntu-24.04${{matrix.ARCH == 'arm' && '-arm' || ''}}
13-
container:
14-
image: ${{matrix.OS}}
15-
env:
16-
DEBIAN_FRONTEND: noninteractive
17-
R_CRAN_WEB: "https://cran.rstudio.com"
18-
CRAN_RSYNC: 'mirrors.nic.cz::CRAN'
19-
strategy:
20-
fail-fast: false
21-
matrix:
22-
CC: [ gcc, clang ]
23-
OS: [ 'debian:stable', 'debian:testing' ]
24-
ARCH: [ 'intel', 'arm']
25-
steps:
26-
- name: System dependencies
27-
run: |
28-
set -e
29-
apt-get update -y
30-
apt-get install -y ${{matrix.CC}} wget locales git rsync gfortran xvfb autoconf pkg-config texinfo texlive-latex-extra texlive-fonts-recommended tk8.6-dev \
31-
libcurl4-openssl-dev libblas-dev libbz2-dev libicu-dev libjpeg-dev liblapack-dev liblzma-dev libncurses5-dev libpcre2-dev libpng-dev libtiff-dev libcairo2-dev libpango1.0-dev libreadline-dev libxt-dev
32-
localedef -i en_US -f UTF-8 en_US.UTF-8
33-
echo "LANG=en_US.UTF-8" >> $GITHUB_ENV
34-
- name: Checkout
35-
uses: actions/checkout@v4
36-
with:
37-
fetch-depth: 100
38-
39-
- name: Prepare
40-
run: |
41-
git config --global --add safe.directory $PWD || true
42-
sed -i.bak 's|$(GIT) svn info|./.github/scripts/svn-info.sh|' Makefile.in
43-
./.github/scripts/wget-recommended.sh
44-
./.github/scripts/svn-info.sh
45-
- name: Configure
46-
run: CC=${{matrix.CC}} ./configure --enable-R-shlib --with-blas --with-lapack --disable-java
47-
48-
- name: Build
49-
run: make
50-
51-
- name: Check
52-
run: xvfb-run make check-all
53-
54-
- name: Print failed tests
55-
if: always()
56-
run: tail -n100 tests/*.fail || true
57-
58-
macos:
59-
name: MacOS
60-
strategy:
61-
fail-fast: false
62-
matrix:
63-
OS: [ 'macOS-13', 'macOS-14' ]
64-
runs-on: ${{matrix.OS}}
65-
timeout-minutes: 90
66-
env:
67-
PKG_CONFIG_PATH: /opt/X11/lib/pkgconfig
68-
R_CRAN_WEB: "https://cran.rstudio.com"
69-
CRAN_RSYNC: 'mirrors.nic.cz::CRAN'
70-
R_TEXI2DVICMD: emulation
71-
72-
steps:
73-
- name: Download CRAN system libraries
74-
run: |
75-
echo "ARCH=$(uname -m)" >> $GITHUB_ENV
76-
curl --retry 3 -fsSL https://github.com/r-universe-org/cranlibs/releases/download/2025-01-05/cranlibs-everything.tar.xz -o libs.tar.xz
77-
sudo tar -xf libs.tar.xz -C / opt
78-
rm -f libs.tar.xz
79-
80-
- name: Remove homebrew
81-
run: |
82-
echo "/opt/R/${ARCH}/bin" >> $GITHUB_PATH
83-
echo "LDFLAGS=-L/opt/R/${ARCH}/lib" >> $GITHUB_ENV
84-
echo "CPPFLAGS=-I/opt/R/${ARCH}/include" >> $GITHUB_ENV
85-
echo "PKG_CONFIG_PATH=/opt/R/${ARCH}/lib/pkgconfig:/opt/R/${ARCH}/share/pkgconfig" >> $GITHUB_ENV
86-
echo "/Library/TeX/texbin" >> $GITHUB_PATH
87-
echo "/usr/local/opt/texinfo/bin" >> $GITHUB_PATH
88-
cp -fv $(which wget) "/opt/R/${ARCH}/bin"
89-
brew unlink $(brew list --formula) || true
90-
91-
- name: Install CRAN fortran build
92-
run: |
93-
curl --retry 3 -fsSLO https://github.com/R-macos/gcc-12-branch/releases/download/12.2-darwin-r0.1/gfortran-12.2-universal.pkg
94-
sudo installer -pkg "gfortran-12.2-universal.pkg" -target /
95-
rm -f gfortran-12.2-universal.pkg
96-
echo "/opt/gfortran/bin" >> $GITHUB_PATH
97-
echo "FC=/opt/gfortran/bin/gfortran" >> $GITHUB_ENV
98-
99-
- name: Checkout
100-
uses: actions/checkout@v4
101-
with:
102-
fetch-depth: 100
103-
104-
- name: Prepare
105-
run: |
106-
sed -i.bak 's|$(GIT) svn info|./.github/scripts/svn-info.sh|' Makefile.in
107-
./.github/scripts/wget-recommended.sh
108-
./.github/scripts/svn-info.sh
109-
110-
- name: Configure
111-
run: CC=clang ./configure --prefix=/opt/R/${ARCH}/r-devel --disable-java --with-cairo --without-tcltk --without-x --with-aqua $ACCELERATE --enable-R-shlib SED=/usr/bin/sed
112-
env:
113-
PDFLATEX: ${{github.workspace}}/.github/scripts/dummy
114-
ACCELERATE: ${{ matrix.OS != 'macOS-13' && '--with-lapack --with-blas' || '' }}
115-
116-
- name: Build
117-
run: make
118-
env:
119-
PDFLATEX: ${{github.workspace}}/.github/scripts/dummy
120-
121-
- name: Install
122-
run: |
123-
mkdir -p /opt/R/${ARCH}/r-devel
124-
make install DESTDIR="/opt/R/${ARCH}/r-devel"
125-
(cd /opt/R/${ARCH}/r-devel; tar cfJ "/opt/R/r-devel-${ARCH}.tar.xz" .)
126-
127-
- uses: actions/upload-artifact@v4
128-
with:
129-
name: R-devel-${{ matrix.OS == 'macOS-13' && 'x86_64' || 'arm64' }}
130-
path: /opt/R/r-devel-${{ matrix.OS == 'macOS-13' && 'x86_64' || 'arm64' }}.tar.xz
131-
132-
- name: Check
133-
run: make check-all
134-
env:
135-
PDFLATEX: ${{github.workspace}}/.github/scripts/dummy
136-
137-
- name: Print failed tests
138-
if: always()
139-
run: tail -n100 tests/*.fail || true
140-
14110
windows:
14211
name: Windows
143-
runs-on: windows-latest
12+
runs-on: ${{matrix.OS}}
14413
timeout-minutes: 120
14514
env:
14615
R_CRAN_WEB: "https://cran.rstudio.com"
@@ -152,8 +21,8 @@ jobs:
15221
fail-fast: false
15322
matrix:
15423
script: [ 'check', 'installer' ]
24+
OS: [ 'windows-latest', 'windows-11-arm']
15525
steps:
156-
15726
- name: Prepare git
15827
run: git config --global core.autocrlf false
15928
shell: bash
@@ -168,12 +37,17 @@ jobs:
16837
msystem: MSYS
16938
install: git make perl curl texinfo texinfo-tex rsync zip unzip diffutils
17039

171-
- name: "Download rtools44 toolchain"
40+
- name: "Download rtools45 ARM64 toolchain"
41+
if: matrix.OS == 'windows-11-arm'
42+
run: |
43+
url="https://github.com/r-windows/rtools-chocolatey/releases/download/6536/rtools45-toolchain-libs-base-aarch64-6536.tar.zst"
44+
curl -sSL $url | tar x --zstd -C /c/ || true
45+
46+
- name: "Download rtools45 Intel toolchain"
47+
if: matrix.OS != 'windows-11-arm'
17248
run: |
173-
url="https://github.com/r-windows/rtools-chocolatey/releases/download/6104/rtools44-toolchain-libs-base-6104.tar.zst"
49+
url="https://github.com/r-windows/rtools-chocolatey/releases/download/6536/rtools45-toolchain-libs-base-6536.tar.zst"
17450
curl -sSL $url | tar x --zstd -C /c/ || true
175-
#echo "RTOOLS44_HOME=c:" >> $GITHUB_ENV
176-
#echo "R_CUSTOM_TOOLS_SOFT=c:/x86_64-w64-mingw32.static.posix" >> $GITHUB_ENV
17751
17852
- name: Set timezone
17953
shell: powershell

0 commit comments

Comments
 (0)