diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1c53bde096e..811bec07918 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,98 +1,98 @@ -name: ci -on: - pull_request: - branches: [ main, feature/*, hotfix/* ] - push: - branches: [ main, feature/*, hotfix/* ] - -jobs: - test: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [windows-latest, macos-latest, ubuntu-latest] - steps: - - uses: actions/checkout@v4 - with: - lfs: true - - - uses: ./.github/actions/build - - - run: npm run lint - shell: bash - working-directory: templates - - - run: npm test - shell: bash - working-directory: templates - - - run: dotnet test -c Release -f net8.0 --no-build --collect:"XPlat Code Coverage" - - - run: dotnet test -c Release -f net7.0 --no-build --collect:"XPlat Code Coverage" - if: matrix.os == 'ubuntu-latest' - - - run: dotnet test -c Release -f net6.0 --no-build --collect:"XPlat Code Coverage" - if: matrix.os == 'ubuntu-latest' - - - uses: codecov/codecov-action@v3 - if: matrix.os == 'ubuntu-latest' - - - run: echo "DOTNET_DbgEnableMiniDump=1" >> $GITHUB_ENV - if: matrix.os == 'ubuntu-latest' - - - run: dotnet run -c Release --no-build -f net8.0 --project src/docfx -- docs/docfx.json - - run: dotnet run -c Release --no-build -f net8.0 --project src/docfx -- samples/seed/docfx.json --output docs/_site/seed - - - uses: actions/upload-pages-artifact@v3 - if: matrix.os == 'ubuntu-latest' - with: - path: docs/_site - - - uses: actions/upload-artifact@v4 - if: ${{ failure() && matrix.os == 'ubuntu-latest' }} - with: - name: dump - path: /tmp/coredump* - - snapshot: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [windows-latest, ubuntu-latest] - permissions: - contents: write - steps: - - uses: actions/checkout@v4 - with: - lfs: true - - - uses: ./.github/actions/build - - - run: dotnet build -c Release samples/extensions/build - - run: dotnet test -c Release -f net8.0 --no-build --filter Stage=Snapshot - working-directory: test/docfx.Snapshot.Tests - env: - SNAPSHOT_TEST: true - BUILD_SERVER: ${{ github.event_name != 'pull_request' }} - - - uses: stefanzweifel/git-auto-commit-action@v5 - if: github.event_name == 'pull_request' - with: - commit_message: 'test(snapshot): update snapshots ${{ github.sha }} for ${{ matrix.os }}' - - publish-docs: - if: github.ref == 'refs/heads/main' - needs: [test, snapshot] - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - permissions: - actions: read - pages: write - id-token: write - steps: - - id: deployment - uses: actions/deploy-pages@v4 +name: ci +on: + pull_request: + branches: [ main, feature/*, hotfix/* ] + push: + branches: [ main, feature/*, hotfix/* ] + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [windows-latest, macos-latest, ubuntu-latest] + steps: + - uses: actions/checkout@v4 + with: + lfs: true + + - uses: ./.github/actions/build + + - run: npm run lint + shell: bash + working-directory: templates + + - run: npm test + shell: bash + working-directory: templates + + - run: dotnet test -c Release -f net8.0 --no-build --collect:"XPlat Code Coverage" + + - run: dotnet test -c Release -f net7.0 --no-build --collect:"XPlat Code Coverage" + if: matrix.os == 'ubuntu-latest' + + - run: dotnet test -c Release -f net6.0 --no-build --collect:"XPlat Code Coverage" + if: matrix.os == 'ubuntu-latest' + + - uses: codecov/codecov-action@v4 + if: matrix.os == 'ubuntu-latest' + + - run: echo "DOTNET_DbgEnableMiniDump=1" >> $GITHUB_ENV + if: matrix.os == 'ubuntu-latest' + + - run: dotnet run -c Release --no-build -f net8.0 --project src/docfx -- docs/docfx.json + - run: dotnet run -c Release --no-build -f net8.0 --project src/docfx -- samples/seed/docfx.json --output docs/_site/seed + + - uses: actions/upload-pages-artifact@v3 + if: matrix.os == 'ubuntu-latest' + with: + path: docs/_site + + - uses: actions/upload-artifact@v4 + if: ${{ failure() && matrix.os == 'ubuntu-latest' }} + with: + name: dump + path: /tmp/coredump* + + snapshot: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [windows-latest, ubuntu-latest] + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + with: + lfs: true + + - uses: ./.github/actions/build + + - run: dotnet build -c Release samples/extensions/build + - run: dotnet test -c Release -f net8.0 --no-build --filter Stage=Snapshot + working-directory: test/docfx.Snapshot.Tests + env: + SNAPSHOT_TEST: true + BUILD_SERVER: ${{ github.event_name != 'pull_request' }} + + - uses: stefanzweifel/git-auto-commit-action@v5 + if: github.event_name == 'pull_request' + with: + commit_message: 'test(snapshot): update snapshots ${{ github.sha }} for ${{ matrix.os }}' + + publish-docs: + if: github.ref == 'refs/heads/main' + needs: [test, snapshot] + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + permissions: + actions: read + pages: write + id-token: write + steps: + - id: deployment + uses: actions/deploy-pages@v4