解决MySql布尔型新旧版本兼容问题,采用枚举来表示布尔型的数据表。由正向工程赋值
大石头 authored at 2018-05-15 21:21:05
2.12 KiB
X
name: publish-beta

on:
  push:
    branches: [ dev ]
    paths:
        - 'NewLife.Core/**'
  pull_request:
    branches: [ dev ]
    paths:
        - 'NewLife.Core/**'
  workflow_dispatch:

jobs:
  build-publish:
    runs-on: windows-latest

    steps:
    - uses: actions/checkout@v4
    - name: Setup dotNET
      uses: actions/setup-dotnet@v4
      with:
        dotnet-version: |
          6.x
          7.x
          8.x
          9.x
          10.x
    - name: Get Version
      run: echo "VERSION=$(date '+%Y.%m%d-beta%H%M')" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
    - name: Build
      run: |
        dotnet pack --version-suffix ${{ env.VERSION }} -c Release -o out NewLife.Core\NewLife.Core.csproj
    - name: Package consumer smoke
      # 下游只加 PackageReference + Locales/*.yml 的端到端验证;失败即不发包
      shell: pwsh
      run: ./Tools/Scripts/check-package-consumer.ps1
    - name: API compatibility gate (observation mode)
      # 观察期:只报告不阻断;2~4 周无新增噪声后删除 continue-on-error 转为发布阻断。
      # 基线=本 dev 线(12.0.*)上次已发布的 beta;校验在 Publish 之前,不会被本次发布污染。
      # 跨 TFM 存量 2 条走 NewLife.Core\CompatibilitySuppressions.xml;本地复现用 Tools/Scripts/check-api-compat.ps1。
      continue-on-error: true
      shell: pwsh
      run: |
        $versions = (Invoke-RestMethod 'https://api.nuget.org/v3-flatcontainer/newlife.core/index.json').versions
        $baseline = $versions | Where-Object { $_ -like '12.0.*' } | Select-Object -Last 1
        Write-Host "Package validation baseline = $baseline"
        dotnet pack NewLife.Core\NewLife.Core.csproj -c Release -o out-pv `
          -p:EnablePackageValidation=true `
          -p:PackageValidationBaselineVersion=$baseline
    - name: Publish
      run: |
        dotnet nuget push .\out\*.nupkg --skip-duplicate --source https://nuget.pkg.github.com/NewLifeX/index.json --api-key ${{ github.token }}
        dotnet nuget push .\out\*.nupkg --skip-duplicate --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.nugetKey }}