Skip to content

chore: Cleanup CI

chore: Cleanup CI #14

Workflow file for this run

name: Base Tests
on:
push:
branches:
- master
pull_request:
workflow_call:
inputs:
include:
description: 'Include matrix configurations'
required: false
type: string
default: "[]"
exclude:
description: 'Exclude matrix configurations'
required: false
type: string
default: "[]"
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
delete_cache:
name: Delete github action's branch cache
runs-on: ubuntu-latest
steps:
- uses: snnaplab/delete-branch-cache-action@v1
test:
needs: delete_cache
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
platform:
- os: linux
builder: ubuntu-20.04
cpu: amd64
shell: bash
- os: linux
builder: ubuntu-20.04
cpu: i386
shell: bash
- os: macos
builder: macos-12
cpu: amd64
shell: bash
- os: windows
builder: windows-2019
cpu: amd64
shell: msys2 {0}
nim_branch:
- version: version-1-6
memory_management: refc
- version: version-2-0
memory_management: refc
# - version: devel
# memory_management: orc
# If exclude or include are defined use their value, otherwise default to empty list (as declared on workflow_call.inputs).
# Reason for above is when workflow is not initiated by workflow_call, the parameters are not defined. Their value is 0 or '' (empty string).
# This relies on the value 0 meaning the parameter was not filled in.
include: ${{ inputs.include != 0 && fromJSON(inputs.include) || fromJSON('[]') }}
exclude: ${{ inputs.exclude != 0 && fromJSON(inputs.exclude) || fromJSON('[]') }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
name: '${{ matrix.platform.os }}-${{ matrix.platform.cpu }} (Nim ${{ matrix.nim_branch.version }})'
runs-on: ${{ matrix.platform.builder }}
continue-on-error: ${{ matrix.nim_branch.version == 'version-2-0' || matrix.nim_branch.version == 'devel' }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Setup Nim
uses: "./.github/actions/install_nim"
with:
os: ${{ matrix.platform.os }}
shell: ${{ matrix.platform.shell }}
nim_branch: ${{ matrix.nim_branch.version }}
cpu: ${{ matrix.platform.cpu }}
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '~1.15.5'
cache: false
- name: Install p2pd
run: |
V=1 bash scripts/build_p2pd.sh p2pdCache 124530a3
- name: Install deps
run: |
nimble install -y --depsOnly
- name: Run tests
run: |
nim --version
nimble --version
NIMFLAGS="${NIMFLAGS} --mm:${{ matrix.nim_branch.memory_management }}"
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