Skip to content

Fixes an issue with lock where subsequents runs generates empty deps. useSystemNim excludes nim from the lock file #485

Fixes an issue with lock where subsequents runs generates empty deps. useSystemNim excludes nim from the lock file

Fixes an issue with lock where subsequents runs generates empty deps. useSystemNim excludes nim from the lock file #485

Workflow file for this run

on:
push:
tags:
- "v*" # "v1.2.3"
branches:
- master
paths-ignore: ["nimble-guide/**", "**/*.md"]
pull_request:
paths-ignore: ["nimble-guide/**", "**/*.md"]
workflow_dispatch:
jobs:
build:
strategy:
fail-fast: false
matrix:
target:
- os: linux
triple: x86_64-linux-musl
name: linux_x64
- os: linux
triple: i686-linux-musl
name: linux_x32
- os: linux
triple: aarch64-linux-musl
name: linux_aarch64
- os: linux
triple: armv7l-linux-musleabihf
name: linux_armv7l
- os: macosx
triple: x86_64-apple-darwin14
name: macosx_x64
- os: windows
triple: x86_64-w64-mingw32
name: windows_x64
- os: windows
triple: i686-w64-mingw32
name: windows_x32
include:
- target:
os: linux
builder: ubuntu-20.04
- target:
os: macosx
builder: macos-14
- target:
os: windows
builder: windows-2019
defaults:
run:
shell: bash
name: "${{ matrix.target.triple }}"
runs-on: ${{ matrix.builder }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- uses: jiro4989/setup-nim-action@v2
with:
nim-version: "stable"
yes: true
- name: Install dependencies
run: nimble install -y
- name: Install zip
if: matrix.target.os == 'windows'
run: choco install zip
- name: build nimble
run: |
if [[ "${{ matrix.target.triple }}" == "x86_64-apple-darwin14" ]]; then
nim c -d:release \
-d:zippyNoSimd \
--passL:"-target x86_64-apple-macos10.15" \
--passC:"-target x86_64-apple-macos10.15" \
src/nimble.nim;
else
nim -d:release c src/nimble.nim;
fi
- name: Compress binaries
run: |
cd src
if [[ "${{ matrix.target.os }}" == "windows" ]]; then
# Create both formats for Windows
tar -c -z -v -f ../nimble-${{ matrix.target.name }}.tar.gz nimble.exe
zip ../nimble-${{ matrix.target.name }}.zip nimble.exe
else
tar -c -z -v -f ../nimble-${{ matrix.target.name }}.tar.gz nimble
fi
- name: Upload tar.gz artifact
uses: actions/upload-artifact@v4
with:
name: nimble-${{ matrix.target.name }}.tar.gz
path: nimble-${{ matrix.target.name }}.tar.gz
- name: Upload zip artifact (Windows only)
if: matrix.target.os == 'windows'
uses: actions/upload-artifact@v4
with:
name: nimble-${{ matrix.target.name }}.zip
path: nimble-${{ matrix.target.name }}.zip
create-github-release:
if: github.event_name != 'pull_request'
name: Create GitHub Release
needs: [build]
runs-on: ubuntu-latest
permissions:
contents: write
actions: write
steps:
- name: Download artefacts
uses: actions/download-artifact@v4
# Create/update the "latest" release
- uses: ncipollo/release-action@v1
with:
name: Latest Nimble Binaries
artifacts: "*/*"
allowUpdates: true
makeLatest: true
prerelease: true
tag: latest
# Create a versioned release if this is a tag push
- if: startsWith(github.ref, 'refs/tags/v')
uses: ncipollo/release-action@v1
with:
name: Nimble ${{ github.ref_name }}
artifacts: "*/*"
allowUpdates: true
makeLatest: true
prerelease: false
tag: ${{ github.ref_name }}
- name: Delete artefacts
uses: geekyeggo/delete-artifact@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
failOnError: false
name: "nimble-*"