mirror of
https://github.com/status-im/nim-libp2p.git
synced 2025-01-10 13:06:09 +00:00
b5fb7b3a97
The main motivation was to update the Ubuntu version on the daily job as it seemed it wasn't supported anymore. macOS 14 fails immediately with no error msg, so we are using 13 for now.
114 lines
2.9 KiB
YAML
114 lines
2.9 KiB
YAML
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-22.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: Run tests
|
|
run: |
|
|
nim --version
|
|
nimble --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
|