mirror of
https://github.com/vacp2p/nim-libp2p.git
synced 2025-01-16 19:54:28 +00:00
e5e319c1a9
The failure is due to incompatibility (in caching) after Nimble's v.0.14.0 update, where they changed the dependencies directory name from `pkgs` to `pkgs2`. This PR includes the nim branch in the cache key to avoid the directory name issue. In the future, if we deprecate support for Nim 1.6 we may remove this. fixes https://github.com/vacp2p/nim-libp2p/issues/1157 --------- Co-authored-by: Diego <diego@status.im>
116 lines
3.1 KiB
YAML
116 lines
3.1 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
|
|
# Using nim.branch as a simple way to differentiate between nimble using the "pkgs" or "pkgs2" directories.
|
|
# The change happened on Nimble v0.14.0.
|
|
key: nimbledeps-${{ matrix.branch }}-${{ hashFiles('.pinned') }} # hashFiles returns a different value on windows
|
|
|
|
- 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
|