diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index c4174917..84e0eca8 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -1,30 +1,30 @@ -name-template: 'Schema.NET $RESOLVED_VERSION' -tag-template: '$RESOLVED_VERSION' -change-template: '- $TITLE by @$AUTHOR (#$NUMBER)' -no-changes-template: '- No changes' +name-template: "Schema.NET $RESOLVED_VERSION" +tag-template: "$RESOLVED_VERSION" +change-template: "- $TITLE by @$AUTHOR (#$NUMBER)" +no-changes-template: "- No changes" categories: - - title: '📚 Documentation' + - title: "📚 Documentation" labels: - - 'documentation' - - title: '🚀 New Features' + - "documentation" + - title: "🚀 New Features" labels: - - 'enhancement' - - title: '🐛 Bug Fixes' + - "enhancement" + - title: "🐛 Bug Fixes" labels: - - 'bug' - - title: '🧰 Maintenance' + - "bug" + - title: "🧰 Maintenance" labels: - - 'maintenance' + - "maintenance" version-resolver: major: labels: - - 'major' + - "major" minor: labels: - - 'minor' + - "minor" patch: labels: - - 'patch' + - "patch" default: patch template: | $CHANGES @@ -33,16 +33,16 @@ template: | $CONTRIBUTORS autolabeler: - - label: 'documentation' + - label: "documentation" files: - - '**/*.md' - - label: 'enhancement' + - "**/*.md" + - label: "enhancement" files: - - 'Source/**/*' - - 'Tools/**/*' - - label: 'maintenance' + - "Source/**/*" + - "Tools/**/*" + - label: "maintenance" files: - - '.github/**/*' - - 'Benchmarks/**/*' - - 'Images/**/*' - - 'Tests/**/*' + - ".github/**/*" + - "Benchmarks/**/*" + - "Images/**/*" + - "Tests/**/*" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fd0884c0..2ac93a4e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,67 +28,67 @@ jobs: matrix: os: [ubuntu-latest, windows-latest, macOS-latest] steps: - - name: 'Checkout' - uses: actions/checkout@v2.3.4 - with: - lfs: true - fetch-depth: 0 - - name: 'Install .NET Core SDK' - uses: actions/setup-dotnet@v1.8.2 - - name: 'Dotnet Tool Restore' - run: dotnet tool restore - shell: pwsh - - name: 'Dotnet Cake Build' - run: dotnet cake --target=Build - shell: pwsh - - name: 'Dotnet Cake Test' - run: dotnet cake --target=Test - shell: pwsh - - name: 'Dotnet Cake Pack' - run: dotnet cake --target=Pack - shell: pwsh - - name: 'Publish Artefacts' - uses: actions/upload-artifact@v2.2.4 - with: - name: ${{matrix.os}} - path: './Artefacts' + - name: "Checkout" + uses: actions/checkout@v2.3.4 + with: + lfs: true + fetch-depth: 0 + - name: "Install .NET Core SDK" + uses: actions/setup-dotnet@v1.8.2 + - name: "Dotnet Tool Restore" + run: dotnet tool restore + shell: pwsh + - name: "Dotnet Cake Build" + run: dotnet cake --target=Build + shell: pwsh + - name: "Dotnet Cake Test" + run: dotnet cake --target=Test + shell: pwsh + - name: "Dotnet Cake Pack" + run: dotnet cake --target=Pack + shell: pwsh + - name: "Publish Artefacts" + uses: actions/upload-artifact@v2.2.4 + with: + name: ${{matrix.os}} + path: "./Artefacts" push-github-packages: - name: 'Push GitHub Packages' + name: "Push GitHub Packages" needs: build if: github.ref == 'refs/heads/main' || github.event_name == 'release' environment: - name: 'GitHub Packages' + name: "GitHub Packages" url: https://github.com/RehanSaeed/Schema.NET/packages permissions: packages: write runs-on: windows-latest steps: - - name: 'Download Artefact' + - name: "Download Artefact" uses: actions/download-artifact@v2 with: - name: 'windows-latest' - - name: 'Dotnet NuGet Add Source' + name: "windows-latest" + - name: "Dotnet NuGet Add Source" run: dotnet nuget add source https://nuget.pkg.github.com/RehanSaeed/index.json --name GitHub --username RehanSaeed --password ${{secrets.GITHUB_TOKEN}} shell: pwsh - - name: 'Dotnet NuGet Push' + - name: "Dotnet NuGet Push" run: dotnet nuget push .\*.nupkg --api-key ${{ github.token }} --source GitHub --skip-duplicate shell: pwsh push-nuget: - name: 'Push NuGet Packages' + name: "Push NuGet Packages" needs: build if: github.event_name == 'release' environment: - name: 'NuGet' + name: "NuGet" url: https://www.nuget.org/packages/Schema.NET runs-on: windows-latest steps: - - name: 'Download Artefact' + - name: "Download Artefact" uses: actions/download-artifact@v2 with: - name: 'windows-latest' - - name: 'Dotnet NuGet Push' + name: "windows-latest" + - name: "Dotnet NuGet Push" run: | Get-ChildItem .\ -Filter *.nupkg | Where-Object { !$_.Name.Contains('preview') } | diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 8c529cda..0f550137 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -7,12 +7,12 @@ name: "CodeQL" on: push: - branches: [ main ] + branches: [main] pull_request: # The branches below must be a subset of the branches above - branches: [ main ] + branches: [main] schedule: - - cron: '0 7 * * 4' + - cron: "0 7 * * 4" workflow_dispatch: jobs: @@ -27,40 +27,40 @@ jobs: strategy: fail-fast: false matrix: - language: [ 'csharp' ] + language: ["csharp"] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] # Learn more: # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed steps: - - name: Checkout repository - uses: actions/checkout@v2.3.4 + - name: Checkout repository + uses: actions/checkout@v2.3.4 - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v1 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + # queries: ./path/to/local/query, your-org/your-repo/queries@main - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v1 - # ℹī¸ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl + # ℹī¸ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl - # ✏ī¸ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language + # ✏ī¸ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language - #- run: | - # make bootstrap - # make release + #- run: | + # make bootstrap + # make release - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 diff --git a/appveyor.yml b/appveyor.yml index 209a4d5c..e89aca29 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,11 +1,11 @@ # AppVeyor documentation https://www.appveyor.com/docs -version: '{build}' +version: "{build}" image: -- macOS -- Ubuntu -- Visual Studio 2019 + - macOS + - Ubuntu + - Visual Studio 2019 environment: # Disable the .NET logo in the console output. @@ -18,36 +18,36 @@ environment: MINVERBUILDMETADATA: build.%APPVEYOR_BUILD_NUMBER% build_script: -# https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script -- pwsh: | - if ($isWindows) { - Invoke-WebRequest "https://dot.net/v1/dotnet-install.ps1" -OutFile "./dotnet-install.ps1" - ./dotnet-install.ps1 -JSonFile global.json -InstallDir 'C:\Program Files\dotnet' - } - else { - Invoke-WebRequest "https://dot.net/v1/dotnet-install.sh" -OutFile "./dotnet-install.sh" - sudo chmod u+x dotnet-install.sh - if ($isMacOS) { - sudo ./dotnet-install.sh --jsonfile global.json --install-dir '/usr/local/share/dotnet' - } else { - sudo ./dotnet-install.sh --jsonfile global.json --install-dir '/usr/share/dotnet' + # https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script + - pwsh: | + if ($isWindows) { + Invoke-WebRequest "https://dot.net/v1/dotnet-install.ps1" -OutFile "./dotnet-install.ps1" + ./dotnet-install.ps1 -JSonFile global.json -InstallDir 'C:\Program Files\dotnet' } - } -- pwsh: dotnet tool restore --verbosity diagnostic -- pwsh: dotnet cake --target=Build -- pwsh: dotnet cake --target=Test -- pwsh: dotnet cake --target=Pack + else { + Invoke-WebRequest "https://dot.net/v1/dotnet-install.sh" -OutFile "./dotnet-install.sh" + sudo chmod u+x dotnet-install.sh + if ($isMacOS) { + sudo ./dotnet-install.sh --jsonfile global.json --install-dir '/usr/local/share/dotnet' + } else { + sudo ./dotnet-install.sh --jsonfile global.json --install-dir '/usr/share/dotnet' + } + } + - pwsh: dotnet tool restore --verbosity diagnostic + - pwsh: dotnet cake --target=Build + - pwsh: dotnet cake --target=Test + - pwsh: dotnet cake --target=Pack test: off artifacts: -- name: NuGet Packages - path: ./Artefacts/**/*.nupkg -- name: NuGet Symbol Packages - path: ./Artefacts/**/*.snupkg -- name: xUnit XML Test Results - path: ./Artefacts/**/*.xml -- name: xUnit HTML Test Results - path: ./Artefacts/**/*.html -- name: Code Coverage - path: ./Artefacts/**/*.cobertura.xml + - name: NuGet Packages + path: ./Artefacts/**/*.nupkg + - name: NuGet Symbol Packages + path: ./Artefacts/**/*.snupkg + - name: xUnit XML Test Results + path: ./Artefacts/**/*.xml + - name: xUnit HTML Test Results + path: ./Artefacts/**/*.html + - name: Code Coverage + path: ./Artefacts/**/*.cobertura.xml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 327055e5..99a5a010 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -3,14 +3,14 @@ trigger: branches: include: - - 'main' + - "main" tags: include: - - '*' + - "*" pr: branches: include: - - '*' + - "*" variables: # Disable the .NET logo in the console output. @@ -23,71 +23,71 @@ variables: MINVERBUILDMETADATA: build.$(Build.BuildId) stages: -- stage: Build - jobs: - - job: Build - strategy: - matrix: - Linux: - matrixName: Ubuntu - vmImageName: ubuntu-latest - Mac: - matrixName: Mac - vmImageName: macos-latest - Windows: - matrixName: Windows - vmImageName: windows-latest - pool: - vmImage: $(vmImageName) - timeoutInMinutes: 20 - steps: - - checkout: self - lfs: true - - task: UseDotNet@2 - displayName: 'Install .NET Core SDK' - inputs: - packageType: 'sdk' - useGlobalJson: true - - pwsh: 'dotnet tool restore' - displayName: 'Dotnet Tool Restore' - failOnStderr: true - - pwsh: 'dotnet cake --target=Build' - displayName: 'Dotnet Cake Build' - failOnStderr: true - - pwsh: 'dotnet cake --target=Test' - displayName: 'Dotnet Cake Test' - failOnStderr: true - - pwsh: 'dotnet cake --target=Pack' - displayName: 'Dotnet Cake Pack' - failOnStderr: true - - task: PublishTestResults@2 - displayName: 'Publish Test Results' - inputs: - testResultsFormat: 'VSTest' - testResultsFiles: '**/*.trx' - - task: PublishCodeCoverageResults@1 - inputs: - codeCoverageTool: cobertura - summaryFileLocation: '**/*.cobertura.xml' - - publish: './Artefacts' - artifact: $(matrixName) - displayName: 'Publish Artefacts' -- stage: Deploy - jobs: - - deployment: AzureArtefacts - displayName: 'Azure Artefacts' - condition: ne(variables['Build.Reason'], 'PullRequest') - pool: - vmImage: windows-latest - environment: 'Azure Artefacts' - strategy: - runOnce: - deploy: - steps: - - task: NuGetToolInstaller@1 - displayName: 'NuGet Install' - - task: NuGetAuthenticate@0 - displayName: 'NuGet Authenticate' - - pwsh: nuget push $(Agent.BuildDirectory)\Windows\*.nupkg -Source https://pkgs.dev.azure.com/schema-net/_packaging/schema-net/nuget/v3/index.json -ApiKey AzureArtifacts -SkipDuplicate - displayName: 'NuGet Push' + - stage: Build + jobs: + - job: Build + strategy: + matrix: + Linux: + matrixName: Ubuntu + vmImageName: ubuntu-latest + Mac: + matrixName: Mac + vmImageName: macos-latest + Windows: + matrixName: Windows + vmImageName: windows-latest + pool: + vmImage: $(vmImageName) + timeoutInMinutes: 30 + steps: + - checkout: self + lfs: true + - task: UseDotNet@2 + displayName: "Install .NET Core SDK" + inputs: + packageType: "sdk" + useGlobalJson: true + - pwsh: "dotnet tool restore" + displayName: "Dotnet Tool Restore" failOnStderr: true + - pwsh: "dotnet cake --target=Build" + displayName: "Dotnet Cake Build" + failOnStderr: true + - pwsh: "dotnet cake --target=Test" + displayName: "Dotnet Cake Test" + failOnStderr: true + - pwsh: "dotnet cake --target=Pack" + displayName: "Dotnet Cake Pack" + failOnStderr: true + - task: PublishTestResults@2 + displayName: "Publish Test Results" + inputs: + testResultsFormat: "VSTest" + testResultsFiles: "**/*.trx" + - task: PublishCodeCoverageResults@1 + inputs: + codeCoverageTool: cobertura + summaryFileLocation: "**/*.cobertura.xml" + - publish: "./Artefacts" + artifact: $(matrixName) + displayName: "Publish Artefacts" + - stage: Deploy + jobs: + - deployment: AzureArtefacts + displayName: "Azure Artefacts" + condition: ne(variables['Build.Reason'], 'PullRequest') + pool: + vmImage: windows-latest + environment: "Azure Artefacts" + strategy: + runOnce: + deploy: + steps: + - task: NuGetToolInstaller@1 + displayName: "NuGet Install" + - task: NuGetAuthenticate@0 + displayName: "NuGet Authenticate" + - pwsh: nuget push $(Agent.BuildDirectory)\Windows\*.nupkg -Source https://pkgs.dev.azure.com/schema-net/_packaging/schema-net/nuget/v3/index.json -ApiKey AzureArtifacts -SkipDuplicate + displayName: "NuGet Push" + failOnStderr: true diff --git a/global.json b/global.json index 5a7166c3..08fa0ebf 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { "rollForward": "latestMajor", - "version": "5.0.301" + "version": "5.0.401" } }