Skip to content

Merge pull request #285 from xt0rted/dependabot/npm_and_yarn/markdown… #687

Merge pull request #285 from xt0rted/dependabot/npm_and_yarn/markdown…

Merge pull request #285 from xt0rted/dependabot/npm_and_yarn/markdown… #687

Workflow file for this run

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/checkout@v4.1.4
- name: Install Node
uses: actions/setup-node@v4.0.2
with:
node-version: 21
- uses: xt0rted/markdownlint-problem-matcher@v3.0.0
- 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/checkout@v4.1.4
- 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/setup-dotnet@v1.5.0
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/upload-artifact@v4.3.3
with:
name: nupkg
path: ./artifacts/*.nupkg
- name: Upload test results
if: failure()
uses: actions/upload-artifact@v4.3.3
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/checkout@v4.1.4
- name: Set up .NET
uses: xt0rted/setup-dotnet@v1.5.0
with:
source-url: https://nuget.pkg.github.com/xt0rted/index.json
nuget_auth_token: ${{ secrets.GITHUB_TOKEN }}
- name: Download nupkg
uses: actions/download-artifact@v4.1.7
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/upload-artifact@v4.3.3
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/download-artifact@v4.1.7
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 }}