Skip to content

Initial port of https://github.com/microsoft/vscode-ripgrep.git #1

Initial port of https://github.com/microsoft/vscode-ripgrep.git

Initial port of https://github.com/microsoft/vscode-ripgrep.git #1

Workflow file for this run

name: CI/CD
on:
push:
branches: [ main, develop ]
tags:
- 'v*'
pull_request:
branches: [ main ]
env:
DOTNET_VERSION: '8.0.x'
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: true
jobs:
build-test:
strategy:
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Cache NuGet packages
uses: actions/cache@v3
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
restore-keys: |
${{ runner.os }}-nuget-
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore -c Release
- name: Test
run: dotnet test --no-build -c Release --verbosity normal --logger "trx;LogFileName=test-results.trx"
env:
CI: true
- name: Upload test results
uses: actions/upload-artifact@v3
if: always()
with:
name: test-results-${{ matrix.os }}
path: '**/test-results.trx'
pack:
needs: build-test
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build -c Release
- name: Pack
run: |
VERSION="${GITHUB_REF#refs/tags/v}"
if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
VERSION="1.0.0-preview.${{ github.run_number }}"
fi
dotnet pack src/Ivy.Ripgrep/Ivy.Ripgrep.csproj \
-c Release \
-p:PackageVersion=$VERSION \
-p:ContinuousIntegrationBuild=true \
-o artifacts
- name: Upload NuGet packages
uses: actions/upload-artifact@v3
with:
name: nuget-packages
path: artifacts/*.nupkg
publish:
needs: pack
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Download NuGet packages
uses: actions/download-artifact@v3
with:
name: nuget-packages
path: artifacts
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Push to NuGet
run: |
dotnet nuget push artifacts/*.nupkg \
-k ${{ secrets.NUGET_API_KEY }} \
-s https://api.nuget.org/v3/index.json \
--skip-duplicate
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
files: artifacts/*.nupkg
generate_release_notes: true
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}