mirror of
https://github.com/nim-lang/Nim.git
synced 2026-08-31 02:43:41 +00:00
test i386
This commit is contained in:
3
.github/workflows/bisects.yml
vendored
3
.github/workflows/bisects.yml
vendored
@@ -1,8 +1,7 @@
|
||||
# See https://github.com/juancarlospaco/nimrun-action/issues/3#issuecomment-1607344901
|
||||
name: issue comments bisects
|
||||
on:
|
||||
issue_comment:
|
||||
types: created
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
bisects:
|
||||
|
||||
29
.github/workflows/ci_docs.yml
vendored
29
.github/workflows/ci_docs.yml
vendored
@@ -1,33 +1,6 @@
|
||||
name: Nim Docs CI
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- 'compiler/**.nim'
|
||||
- 'config/nimdoc.cfg'
|
||||
- 'doc/**.rst'
|
||||
- 'doc/**.md'
|
||||
- 'doc/nimdoc.css'
|
||||
- 'lib/**.nim'
|
||||
- 'nimdoc/testproject/expected/testproject.html'
|
||||
- 'tools/dochack/dochack.nim'
|
||||
- 'tools/kochdocs.nim'
|
||||
- '.github/workflows/ci_docs.yml'
|
||||
- 'koch.nim'
|
||||
|
||||
pull_request:
|
||||
# Run only on changes on these files.
|
||||
paths:
|
||||
- 'compiler/**.nim'
|
||||
- 'config/nimdoc.cfg'
|
||||
- 'doc/**.rst'
|
||||
- 'doc/**.md'
|
||||
- 'doc/nimdoc.css'
|
||||
- 'lib/**.nim'
|
||||
- 'nimdoc/testproject/expected/testproject.html'
|
||||
- 'tools/dochack/dochack.nim'
|
||||
- 'tools/kochdocs.nim'
|
||||
- '.github/workflows/ci_docs.yml'
|
||||
- 'koch.nim'
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
|
||||
62
.github/workflows/ci_i386_linux.yml
vendored
Normal file
62
.github/workflows/ci_i386_linux.yml
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
name: i386 Linux CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'devel'
|
||||
pull_request:
|
||||
branches:
|
||||
- 'devel'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-and-test-i386:
|
||||
name: Build Nim from latest commit and run talign test (i386)
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: i386/debian:bookworm
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install dependencies (i386 Debian)
|
||||
run: |
|
||||
apt-get update -qq
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||
build-essential gcc-multilib g++-multilib make curl git ca-certificates \
|
||||
python3 pkg-config libpcre3-dev libgc-dev libssl-dev libx11-dev
|
||||
|
||||
- name: Add repo bin to PATH
|
||||
run: echo "${GITHUB_WORKSPACE}/bin" >> ${GITHUB_PATH}
|
||||
|
||||
- name: Ensure bin/nim is executable
|
||||
run: ls -la bin || true
|
||||
|
||||
- name: Build koch using existing nim
|
||||
run: |
|
||||
if [ -x bin/nim ]; then
|
||||
bin/nim c koch
|
||||
else
|
||||
apt-get install -y --no-install-recommends nim || true
|
||||
nim c koch || true
|
||||
fi
|
||||
|
||||
- name: Boot the compiler from the checked-out commit
|
||||
shell: bash
|
||||
run: |
|
||||
./koch boot -d:release || ./koch boot
|
||||
|
||||
- name: Show nim version and system info
|
||||
run: |
|
||||
bin/nim -v || true
|
||||
uname -a || true
|
||||
|
||||
- name: Run talign test (i386)
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
export PATH="${GITHUB_WORKSPACE}/bin:$PATH"
|
||||
nim c -r --mm:refc -d:useGcAssert -d:useSysAssert tests/align/talign.nim
|
||||
9
.github/workflows/ci_packages.yml
vendored
9
.github/workflows/ci_packages.yml
vendored
@@ -1,13 +1,6 @@
|
||||
name: Packages CI
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- 'devel'
|
||||
- 'version-2-2'
|
||||
- 'version-2-0'
|
||||
- 'version-1-6'
|
||||
- 'version-1-2'
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
|
||||
3
.github/workflows/ci_publish.yml
vendored
3
.github/workflows/ci_publish.yml
vendored
@@ -1,8 +1,7 @@
|
||||
name: Tracking orc-booting compiler memory usage
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [closed]
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
3
.github/workflows/stale.yml
vendored
3
.github/workflows/stale.yml
vendored
@@ -2,8 +2,7 @@
|
||||
name: Stale pull requests
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *' # Midnight.
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
|
||||
@@ -1,172 +1,172 @@
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- 'devel'
|
||||
- 'version-*'
|
||||
pr:
|
||||
branches:
|
||||
include:
|
||||
- '*'
|
||||
# trigger:
|
||||
# branches:
|
||||
# include:
|
||||
# - 'devel'
|
||||
# - 'version-*'
|
||||
# pr:
|
||||
# branches:
|
||||
# include:
|
||||
# - '*'
|
||||
|
||||
variables:
|
||||
- name: skipci
|
||||
value: false
|
||||
# variables:
|
||||
# - name: skipci
|
||||
# value: false
|
||||
|
||||
jobs:
|
||||
- job: packages
|
||||
# jobs:
|
||||
# - job: packages
|
||||
|
||||
timeoutInMinutes: 90 # default `60` led to lots of cancelled jobs; use 0 for unlimited (may be undesirable)
|
||||
# timeoutInMinutes: 90 # default `60` led to lots of cancelled jobs; use 0 for unlimited (may be undesirable)
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
Linux_amd64:
|
||||
vmImage: 'ubuntu-24.04'
|
||||
CPU: amd64
|
||||
# regularly breaks, refs bug #17325
|
||||
# Linux_i386:
|
||||
# # on 'ubuntu-16.04' (not supported anymore anyways) it errored with:
|
||||
# # g++-multilib : Depends: gcc-multilib (>= 4:5.3.1-1ubuntu1) but it is not going to be installed
|
||||
# vmImage: 'ubuntu-18.04'
|
||||
# CPU: i386
|
||||
OSX_arm64:
|
||||
vmImage: 'macos-15'
|
||||
CPU: arm64
|
||||
OSX_arm64_cpp:
|
||||
vmImage: 'macos-15'
|
||||
CPU: arm64
|
||||
NIM_COMPILE_TO_CPP: true
|
||||
Windows_amd64_batch0_3:
|
||||
vmImage: 'windows-2025'
|
||||
CPU: amd64
|
||||
# see also: `NIM_TEST_PACKAGES`
|
||||
NIM_TESTAMENT_BATCH: "0_3"
|
||||
Windows_amd64_batch1_3:
|
||||
vmImage: 'windows-2025'
|
||||
CPU: amd64
|
||||
NIM_TESTAMENT_BATCH: "1_3"
|
||||
Windows_amd64_batch2_3:
|
||||
vmImage: 'windows-2025'
|
||||
CPU: amd64
|
||||
NIM_TESTAMENT_BATCH: "2_3"
|
||||
# strategy:
|
||||
# matrix:
|
||||
# Linux_amd64:
|
||||
# vmImage: 'ubuntu-24.04'
|
||||
# CPU: amd64
|
||||
# # regularly breaks, refs bug #17325
|
||||
# # Linux_i386:
|
||||
# # # on 'ubuntu-16.04' (not supported anymore anyways) it errored with:
|
||||
# # # g++-multilib : Depends: gcc-multilib (>= 4:5.3.1-1ubuntu1) but it is not going to be installed
|
||||
# # vmImage: 'ubuntu-18.04'
|
||||
# # CPU: i386
|
||||
# OSX_arm64:
|
||||
# vmImage: 'macos-15'
|
||||
# CPU: arm64
|
||||
# OSX_arm64_cpp:
|
||||
# vmImage: 'macos-15'
|
||||
# CPU: arm64
|
||||
# NIM_COMPILE_TO_CPP: true
|
||||
# Windows_amd64_batch0_3:
|
||||
# vmImage: 'windows-2025'
|
||||
# CPU: amd64
|
||||
# # see also: `NIM_TEST_PACKAGES`
|
||||
# NIM_TESTAMENT_BATCH: "0_3"
|
||||
# Windows_amd64_batch1_3:
|
||||
# vmImage: 'windows-2025'
|
||||
# CPU: amd64
|
||||
# NIM_TESTAMENT_BATCH: "1_3"
|
||||
# Windows_amd64_batch2_3:
|
||||
# vmImage: 'windows-2025'
|
||||
# CPU: amd64
|
||||
# NIM_TESTAMENT_BATCH: "2_3"
|
||||
|
||||
pool:
|
||||
vmImage: $(vmImage)
|
||||
# pool:
|
||||
# vmImage: $(vmImage)
|
||||
|
||||
workspace:
|
||||
clean: all
|
||||
# workspace:
|
||||
# clean: all
|
||||
|
||||
steps:
|
||||
- bash: git config --global core.autocrlf false
|
||||
displayName: 'Disable auto conversion to CRLF by git (Windows-only)'
|
||||
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
|
||||
# steps:
|
||||
# - bash: git config --global core.autocrlf false
|
||||
# displayName: 'Disable auto conversion to CRLF by git (Windows-only)'
|
||||
# condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
|
||||
|
||||
- checkout: self
|
||||
fetchDepth: 2 # see D20210329T004830
|
||||
# - checkout: self
|
||||
# fetchDepth: 2 # see D20210329T004830
|
||||
|
||||
- bash: |
|
||||
set -e
|
||||
. ci/funs.sh
|
||||
if nimIsCiSkip; then
|
||||
echo '##vso[task.setvariable variable=skipci]true'
|
||||
fi
|
||||
displayName: 'Check whether to skip CI'
|
||||
# - bash: |
|
||||
# set -e
|
||||
# . ci/funs.sh
|
||||
# if nimIsCiSkip; then
|
||||
# echo '##vso[task.setvariable variable=skipci]true'
|
||||
# fi
|
||||
# displayName: 'Check whether to skip CI'
|
||||
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: '20.x'
|
||||
displayName: 'Install node.js 20.x'
|
||||
condition: and(succeeded(), eq(variables['skipci'], 'false'))
|
||||
# - task: NodeTool@0
|
||||
# inputs:
|
||||
# versionSpec: '20.x'
|
||||
# displayName: 'Install node.js 20.x'
|
||||
# condition: and(succeeded(), eq(variables['skipci'], 'false'))
|
||||
|
||||
- bash: |
|
||||
set -e
|
||||
. ci/funs.sh
|
||||
echo_run sudo add-apt-repository universe
|
||||
echo_run sudo apt-get update -qq
|
||||
DEBIAN_FRONTEND='noninteractive' \
|
||||
echo_run sudo apt-get install --no-install-recommends -yq \
|
||||
gcc-14 g++-14 libpcre3 liblapack-dev libpcre3 liblapack-dev libcurl4-openssl-dev libgc-dev libsdl1.2-dev libsfml-dev valgrind libc6-dbg
|
||||
echo_run sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 60 --slave /usr/bin/g++ g++ /usr/bin/g++-14
|
||||
displayName: 'Install dependencies (amd64 Linux)'
|
||||
condition: and(succeeded(), eq(variables['skipci'], 'false'), eq(variables['Agent.OS'], 'Linux'), eq(variables['CPU'], 'amd64'))
|
||||
# - bash: |
|
||||
# set -e
|
||||
# . ci/funs.sh
|
||||
# echo_run sudo add-apt-repository universe
|
||||
# echo_run sudo apt-get update -qq
|
||||
# DEBIAN_FRONTEND='noninteractive' \
|
||||
# echo_run sudo apt-get install --no-install-recommends -yq \
|
||||
# gcc-14 g++-14 libpcre3 liblapack-dev libpcre3 liblapack-dev libcurl4-openssl-dev libgc-dev libsdl1.2-dev libsfml-dev valgrind libc6-dbg
|
||||
# echo_run sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 60 --slave /usr/bin/g++ g++ /usr/bin/g++-14
|
||||
# displayName: 'Install dependencies (amd64 Linux)'
|
||||
# condition: and(succeeded(), eq(variables['skipci'], 'false'), eq(variables['Agent.OS'], 'Linux'), eq(variables['CPU'], 'amd64'))
|
||||
|
||||
- bash: |
|
||||
set -e
|
||||
. ci/funs.sh
|
||||
echo_run sudo dpkg --add-architecture i386
|
||||
# Downgrade llvm:
|
||||
# - llvm has to be downgraded to have 32bit version installed for sfml.
|
||||
# - bash: |
|
||||
# set -e
|
||||
# . ci/funs.sh
|
||||
# echo_run sudo dpkg --add-architecture i386
|
||||
# # Downgrade llvm:
|
||||
# # - llvm has to be downgraded to have 32bit version installed for sfml.
|
||||
|
||||
cat << EOF | sudo tee /etc/apt/preferences.d/pin-to-rel
|
||||
Package: libllvm6.0
|
||||
Pin: origin "azure.archive.ubuntu.com"
|
||||
Pin-Priority: 1001
|
||||
EOF
|
||||
# cat << EOF | sudo tee /etc/apt/preferences.d/pin-to-rel
|
||||
# Package: libllvm6.0
|
||||
# Pin: origin "azure.archive.ubuntu.com"
|
||||
# Pin-Priority: 1001
|
||||
# EOF
|
||||
|
||||
# echo_run sudo apt-get update -qq
|
||||
echo_run sudo apt-get update -qq || echo "failed, see bug #17343"
|
||||
# `:i386` (e.g. in `libffi-dev:i386`) is needed otherwise you may get:
|
||||
# `could not load: libffi.so` during dynamic loading.
|
||||
DEBIAN_FRONTEND='noninteractive' \
|
||||
echo_run sudo apt-get install --no-install-recommends --allow-downgrades -yq \
|
||||
g++-multilib gcc-multilib libcurl4-openssl-dev:i386 libgc-dev:i386 \
|
||||
libsdl1.2-dev:i386 libsfml-dev:i386 libglib2.0-dev:i386 libffi-dev:i386
|
||||
# # echo_run sudo apt-get update -qq
|
||||
# echo_run sudo apt-get update -qq || echo "failed, see bug #17343"
|
||||
# # `:i386` (e.g. in `libffi-dev:i386`) is needed otherwise you may get:
|
||||
# # `could not load: libffi.so` during dynamic loading.
|
||||
# DEBIAN_FRONTEND='noninteractive' \
|
||||
# echo_run sudo apt-get install --no-install-recommends --allow-downgrades -yq \
|
||||
# g++-multilib gcc-multilib libcurl4-openssl-dev:i386 libgc-dev:i386 \
|
||||
# libsdl1.2-dev:i386 libsfml-dev:i386 libglib2.0-dev:i386 libffi-dev:i386
|
||||
|
||||
|
||||
cat << EOF > bin/gcc
|
||||
#!/bin/bash
|
||||
# cat << EOF > bin/gcc
|
||||
# #!/bin/bash
|
||||
|
||||
exec $(which gcc) -m32 "\$@"
|
||||
EOF
|
||||
# exec $(which gcc) -m32 "\$@"
|
||||
# EOF
|
||||
|
||||
cat << EOF > bin/g++
|
||||
#!/bin/bash
|
||||
# cat << EOF > bin/g++
|
||||
# #!/bin/bash
|
||||
|
||||
exec $(which g++) -m32 "\$@"
|
||||
EOF
|
||||
# exec $(which g++) -m32 "\$@"
|
||||
# EOF
|
||||
|
||||
echo_run chmod 755 bin/gcc
|
||||
echo_run chmod 755 bin/g++
|
||||
# echo_run chmod 755 bin/gcc
|
||||
# echo_run chmod 755 bin/g++
|
||||
|
||||
displayName: 'Install dependencies (i386 Linux)'
|
||||
condition: and(succeeded(), eq(variables['skipci'], 'false'), eq(variables['Agent.OS'], 'Linux'), eq(variables['CPU'], 'i386'))
|
||||
# displayName: 'Install dependencies (i386 Linux)'
|
||||
# condition: and(succeeded(), eq(variables['skipci'], 'false'), eq(variables['Agent.OS'], 'Linux'), eq(variables['CPU'], 'i386'))
|
||||
|
||||
- bash: brew install boehmgc make sfml
|
||||
displayName: 'Install dependencies (OSX)'
|
||||
condition: and(succeeded(), eq(variables['skipci'], 'false'), eq(variables['Agent.OS'], 'Darwin'))
|
||||
# XXX can't find boehm on macos 13
|
||||
# - bash: brew install boehmgc make sfml
|
||||
# displayName: 'Install dependencies (OSX)'
|
||||
# condition: and(succeeded(), eq(variables['skipci'], 'false'), eq(variables['Agent.OS'], 'Darwin'))
|
||||
# # XXX can't find boehm on macos 13
|
||||
|
||||
- bash: |
|
||||
set -e
|
||||
. ci/funs.sh
|
||||
nimInternalInstallDepsWindows
|
||||
echo_run echo '##vso[task.prependpath]$(System.DefaultWorkingDirectory)/dist/mingw64/bin'
|
||||
# - bash: |
|
||||
# set -e
|
||||
# . ci/funs.sh
|
||||
# nimInternalInstallDepsWindows
|
||||
# echo_run echo '##vso[task.prependpath]$(System.DefaultWorkingDirectory)/dist/mingw64/bin'
|
||||
|
||||
displayName: 'Install dependencies (Windows)'
|
||||
condition: and(succeeded(), eq(variables['skipci'], 'false'), eq(variables['Agent.OS'], 'Windows_NT'))
|
||||
# displayName: 'Install dependencies (Windows)'
|
||||
# condition: and(succeeded(), eq(variables['skipci'], 'false'), eq(variables['Agent.OS'], 'Windows_NT'))
|
||||
|
||||
- bash: echo '##vso[task.prependpath]$(System.DefaultWorkingDirectory)/bin'
|
||||
condition: and(succeeded(), eq(variables['skipci'], 'false'))
|
||||
displayName: 'Add build binaries to PATH'
|
||||
# - bash: echo '##vso[task.prependpath]$(System.DefaultWorkingDirectory)/bin'
|
||||
# condition: and(succeeded(), eq(variables['skipci'], 'false'))
|
||||
# displayName: 'Add build binaries to PATH'
|
||||
|
||||
- bash: . ci/funs.sh && nimCiSystemInfo
|
||||
condition: and(succeeded(), eq(variables['skipci'], 'false'))
|
||||
displayName: 'System information'
|
||||
# - bash: . ci/funs.sh && nimCiSystemInfo
|
||||
# condition: and(succeeded(), eq(variables['skipci'], 'false'))
|
||||
# displayName: 'System information'
|
||||
|
||||
- bash: . ci/funs.sh && nimBuildCsourcesIfNeeded CC=gcc ucpu=$(CPU)
|
||||
condition: and(succeeded(), eq(variables['skipci'], 'false'))
|
||||
displayName: 'Build csourcesAny'
|
||||
# - bash: . ci/funs.sh && nimBuildCsourcesIfNeeded CC=gcc ucpu=$(CPU)
|
||||
# condition: and(succeeded(), eq(variables['skipci'], 'false'))
|
||||
# displayName: 'Build csourcesAny'
|
||||
|
||||
# this could be revived if performance justifies it (needs a few updates)
|
||||
# - task: Cache@2
|
||||
# inputs:
|
||||
# key: 'csourcesAny | "$(Agent.OS)" | $(CPU) | $(csources_version)'
|
||||
# path: $(nim_csources)
|
||||
# condition: and(succeeded(), eq(variables['skipci'], 'false'))
|
||||
# displayName: 'Restore built csourcesAny'
|
||||
# # this could be revived if performance justifies it (needs a few updates)
|
||||
# # - task: Cache@2
|
||||
# # inputs:
|
||||
# # key: 'csourcesAny | "$(Agent.OS)" | $(CPU) | $(csources_version)'
|
||||
# # path: $(nim_csources)
|
||||
# # condition: and(succeeded(), eq(variables['skipci'], 'false'))
|
||||
# # displayName: 'Restore built csourcesAny'
|
||||
|
||||
- bash: . ci/funs.sh && nimInternalBuildKochAndRunCI
|
||||
# would could also show on failure: echo '##vso[task.complete result=Failed]'
|
||||
condition: and(succeeded(), eq(variables['skipci'], 'false'))
|
||||
displayName: 'koch, Run CI'
|
||||
env:
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
||||
# - bash: . ci/funs.sh && nimInternalBuildKochAndRunCI
|
||||
# # would could also show on failure: echo '##vso[task.complete result=Failed]'
|
||||
# condition: and(succeeded(), eq(variables['skipci'], 'false'))
|
||||
# displayName: 'koch, Run CI'
|
||||
# env:
|
||||
# SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
||||
|
||||
Reference in New Issue
Block a user