fix: add gcc 14 support #3583
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
timeout-minutes: 90 | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- os: linux | |
cpu: amd64 | |
- os: linux | |
cpu: i386 | |
- os: macos | |
cpu: amd64 | |
- os: windows | |
cpu: amd64 | |
#- os: windows | |
#cpu: i386 | |
branch: [version-1-6, version-2-0] | |
include: | |
- target: | |
os: linux | |
builder: ubuntu-24.04 | |
shell: bash | |
- target: | |
os: macos | |
builder: macos-13 | |
shell: bash | |
- target: | |
os: windows | |
builder: windows-2022 | |
shell: msys2 {0} | |
defaults: | |
run: | |
shell: ${{ matrix.shell }} | |
name: '${{ matrix.target.os }}-${{ matrix.target.cpu }} (Nim ${{ matrix.branch }})' | |
runs-on: ${{ matrix.builder }} | |
continue-on-error: ${{ matrix.branch == 'devel' }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: Setup Nim | |
uses: "./.github/actions/install_nim" | |
with: | |
os: ${{ matrix.target.os }} | |
cpu: ${{ matrix.target.cpu }} | |
shell: ${{ matrix.shell }} | |
nim_branch: ${{ matrix.branch }} | |
- name: Setup Go | |
uses: actions/setup-go@v2 | |
with: | |
go-version: '~1.15.5' | |
- name: Install p2pd | |
run: | | |
V=1 bash scripts/build_p2pd.sh p2pdCache 124530a3 | |
- name: Restore deps from cache | |
id: deps-cache | |
uses: actions/cache@v3 | |
with: | |
path: nimbledeps | |
key: nimbledeps-${{ hashFiles('.pinned') }} | |
- name: Install deps | |
if: ${{ steps.deps-cache.outputs.cache-hit != 'true' }} | |
run: | | |
nimble install_pinned | |
- name: Use gcc 14 | |
if : ${{ matrix.target.os == 'linux' }} | |
run: | | |
# Add GCC-14 to alternatives | |
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 14 | |
# Set GCC-14 as the default | |
sudo update-alternatives --set gcc /usr/bin/gcc-14 | |
- name: Run tests | |
run: | | |
nim --version | |
nimble --version | |
gcc --version | |
nimble test | |
lint: | |
name: "Lint" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 2 # In PR, has extra merge commit: ^1 = PR, ^2 = base | |
- name: Check nph formatting | |
# Pin nph to a specific version to avoid sudden style differences. | |
# Updating nph version should be accompanied with running the new | |
# version on the fluffy directory. | |
run: | | |
VERSION="v0.5.1" | |
ARCHIVE="nph-linux_x64.tar.gz" | |
curl -L "https://github.com/arnetheduck/nph/releases/download/${VERSION}/${ARCHIVE}" -o ${ARCHIVE} | |
tar -xzf ${ARCHIVE} | |
shopt -s extglob # Enable extended globbing | |
./nph examples libp2p tests tools *.@(nim|nims|nimble) | |
git diff --exit-code |