|
name: Build PR |
|
|
|
on: |
|
pull_request: |
|
types: |
|
- opened |
|
- synchronize |
|
- reopened |
|
- ready_for_review |
|
paths: |
|
- ".github/workflows/build-pr.yml" |
|
- "DSharpPlus*/**" |
|
- "tools/**" |
|
- "*.sln" |
|
env: |
|
DOTNET_NOLOGO: 1 |
|
DOTNET_CLI_TELEMETRY_OPTOUT: 1 |
|
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 |
|
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 1 |
|
|
|
jobs: |
|
build-commit: |
|
name: "Build PR #${{ github.event.pull_request.number }}" |
|
runs-on: ubuntu-latest |
|
if: "!contains(format('{0} {1}', github.event.head_commit.message, github.event.pull_request.title), '[ci-skip]')" |
|
steps: |
|
- name: Checkout |
|
uses: actions/checkout@v4 |
|
with: |
|
submodules: recursive |
|
- name: Setup .NET |
|
uses: actions/setup-dotnet@v4 |
|
with: |
|
dotnet-version: 10 |
|
- name: Build Project |
|
run: dotnet build |
|
- name: Test Changes |
|
run: dotnet test --blame-crash --blame-hang --blame-hang-timeout "30s" |
|
- name: Get PR Version |
|
id: pr |
|
run: printf "version=%0*d" 5 ${{ github.run_number }} >> "$GITHUB_OUTPUT" |
|
- name: Build and Package Project |
|
run: dotnet pack --include-symbols --include-source -o build -p:PR="${{ github.event.pull_request.number }}-${{ steps.pr.outputs.version }}" |
|
- name: Upload artifacts |
|
uses: actions/upload-artifact@v4 |
|
with: |
|
name: DSharpPlus-PR-${{ github.event.pull_request.number }}-${{ steps.pr.outputs.version }} |
|
path: ./build/* |