Merge pull request #330 from xt0rted/dependabot/nuget/analyzers-69547… #770
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
DOTNET_NOLOGO: true | |
CONFIGURATION: Release | |
jobs: | |
lint-markdown: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/[email protected] | |
- name: Install Node | |
uses: actions/[email protected] | |
with: | |
node-version: 21 | |
- uses: xt0rted/[email protected] | |
- run: npm ci | |
- run: npm test | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- macos-latest | |
- ubuntu-latest | |
- windows-latest | |
permissions: | |
contents: read | |
packages: read | |
steps: | |
- name: Check out repository | |
uses: actions/[email protected] | |
- name: Build version suffix (main) | |
if: github.event_name == 'push' | |
run: echo "VERSION_SUFFIX=beta.${{ github.run_number }}" >> $GITHUB_ENV | |
shell: bash | |
- name: Build version suffix (pr) | |
if: github.event_name == 'pull_request' | |
run: echo "VERSION_SUFFIX=alpha.${{ github.event.number }}" >> $GITHUB_ENV | |
shell: bash | |
- name: Set up .NET | |
uses: xt0rted/[email protected] | |
with: | |
source-url: https://nuget.pkg.github.com/xt0rted/index.json | |
nuget_auth_token: ${{ secrets.GITHUB_TOKEN }} | |
- run: dotnet tool restore | |
- run: dotnet r build | |
- run: dotnet r test -- --no-build --logger GitHubActions | |
- run: dotnet r pack -- --no-build --version-suffix ${{ env.VERSION_SUFFIX }} | |
- name: Upload artifacts | |
if: matrix.os == 'ubuntu-latest' | |
uses: actions/[email protected] | |
with: | |
name: nupkg | |
path: ./artifacts/*.nupkg | |
- name: Upload test results | |
if: failure() | |
uses: actions/[email protected] | |
with: | |
name: build-verify-test-results | |
path: | | |
**/*.received.* | |
integration: | |
needs: | |
- build | |
- lint-markdown | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- macos-latest | |
- ubuntu-latest | |
- windows-latest | |
shell: | |
- default | |
- bash | |
- pwsh | |
exclude: | |
- os: windows-latest | |
shell: bash | |
include: | |
- os: windows-latest | |
shell: C:\Program Files\Git\bin\bash.exe | |
permissions: | |
contents: read | |
packages: read | |
steps: | |
- name: Check out repository | |
uses: actions/[email protected] | |
- name: Set up .NET | |
uses: xt0rted/[email protected] | |
with: | |
source-url: https://nuget.pkg.github.com/xt0rted/index.json | |
nuget_auth_token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Download nupkg | |
uses: actions/[email protected] | |
with: | |
name: nupkg | |
path: .nuget | |
- run: dotnet tool restore | |
- run: dotnet tool uninstall run-script | |
- run: | | |
file=(.nuget/*.nupkg) | |
pattern="run-script\.(.*)\.nupkg" | |
if [[ $file =~ $pattern ]]; then | |
dotnet tool install run-script --version "${BASH_REMATCH[1]}" --add-source "${{ github.workspace }}/.nuget" | |
else | |
echo "::error::nupkg not found" | |
exit 1 | |
fi | |
shell: bash | |
- run: | | |
if [ "${{ matrix.shell }}" == "default" ]; then | |
dotnet r build -v | |
else | |
dotnet r build -v --script-shell "${{ matrix.shell }}" | |
fi | |
shell: bash | |
- run: | | |
if [ "${{ matrix.shell }}" == "default" ]; then | |
dotnet r test --verbose -- --no-build --logger GitHubActions | |
else | |
shellName="${{ matrix.shell }}" | |
if [[ "$shellName" == *\.exe ]]; then | |
shellName="bash" | |
fi | |
dotnet r test --verbose --script-shell "${{ matrix.shell }}" -- --no-build --logger GitHubActions | |
fi | |
shell: bash | |
- run: dotnet r integration:ci --verbose -- --no-build --logger GitHubActions | |
- run: dotnet r clean:bin build test --verbose | |
- name: Upload test results | |
if: failure() | |
uses: actions/[email protected] | |
with: | |
name: integration-verify-test-results | |
path: | | |
**/*.received.* | |
release: | |
if: github.event_name == 'push' | |
needs: | |
- build | |
- integration | |
runs-on: ubuntu-latest | |
permissions: | |
packages: write | |
steps: | |
- name: Download nupkg | |
uses: actions/[email protected] | |
with: | |
name: nupkg | |
- name: Publish to GPR | |
run: | | |
dotnet nuget push "./*.nupkg" \ | |
--api-key ${{ secrets.GITHUB_TOKEN }} \ | |
--source https://nuget.pkg.github.com/${{ github.repository_owner }} |