Skip to content

BitMono.CLI

BitMono.CLI #70

Workflow file for this run

name: BitMono.CLI
on:
create:
tags:
- "*"
push:
branches: [ main ]
paths:
- '.github/workflows/BitMono.CLI.yaml'
- 'src/**'
- 'test/**'
pull_request:
paths:
- '.github/workflows/BitMono.CLI.yaml'
- 'src/**'
- 'test/**'
jobs:
Build:
runs-on: ubuntu-latest
strategy:
matrix:
target-framework: [net8.0, net7.0, net6.0, net462, netstandard2.1, netstandard2.0]
runtime: [linux-x64, win-x64, linux-arm64, win-arm64, osx-x64, osx-arm64]
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.x
- name: Build Project
uses: ./.github/actions/project-build
id: project-build
with:
project_path: src/BitMono.CLI/BitMono.CLI.csproj
nuget_push: false
target_framework: ${{ matrix.target-framework }}
runtime_version: ${{ matrix.runtime }}
github_token: ${{ secrets.PAT }}
- name: Install zip (for Linux/macOS)
run: |
if [[ "${{ matrix.runtime }}" == "linux-x64" || "${{ matrix.runtime }}" == "linux-arm64" ]]; then
sudo apt-get install -y zip
elif [[ "${{ matrix.runtime }}" == "osx-x64" || "${{ matrix.runtime }}" == "osx-arm64" ]]; then
if ! command -v zip &> /dev/null; then
echo "zip is not available on this macOS runner, and it should be pre-installed."
exit 1
fi
fi
- name: Zip artifacts
run: |
cd ./src/BitMono.CLI/bin/Release/${{ matrix.target-framework }}/${{ matrix.runtime }} && \
zip -qq -r ./BitMono-v${{ steps.project-build.outputs.version }}-CLI-${{ matrix.target-framework }}-${{ matrix.runtime }}.zip *
- name: Upload build
uses: actions/upload-artifact@v4 # There were problems with v4 + matrix, but now it seems to be working ok, see here: see: https://github.com/actions/upload-artifact/issues/478
with:
name: BitMono-v${{ steps.project-build.outputs.version }}-CLI-${{ matrix.target-framework }}-${{ matrix.runtime }}
path: "./src/BitMono.CLI/bin/Release/${{ matrix.target-framework }}/${{ matrix.runtime }}/BitMono-v${{ steps.project-build.outputs.version }}-CLI-${{ matrix.target-framework }}-${{ matrix.runtime }}.zip"
if-no-files-found: error
- name: Create Release
if: github.event_name == 'create' && github.event.ref_type == 'tag'
uses: ncipollo/[email protected]
with:
name: BitMono Release v${{ steps.project-build.outputs.version }}
tag: ${{ steps.project-build.outputs.version }}
artifacts: "./src/BitMono.CLI/bin/Release/${{ matrix.target-framework }}/${{ matrix.runtime }}/BitMono-v${{ steps.project-build.outputs.version }}-CLI-${{ matrix.target-framework }}-${{ matrix.runtime }}.zip"
token: ${{ secrets.PAT }}
prerelease: ${{ steps.project-build.outputs.is_prerelease }}
allowUpdates: true
draft: true