From 6c8c49e80b81890f41529de42024b4efb49b4e87 Mon Sep 17 00:00:00 2001 From: InCerry Date: Fri, 23 Feb 2024 21:35:31 +0800 Subject: [PATCH] add git action --- .github/ISSUE_TEMPLATE.md | 25 ++++++++++++ .github/workflows/build.yml | 35 +++++++++++++++++ .github/workflows/buildandtest.yml | 43 +++++++++++++++++++++ .github/workflows/release_stable.yml | 52 +++++++++++++++++++++++++ .github/workflows/release_unstable.yml | 53 ++++++++++++++++++++++++++ 5 files changed, 208 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/buildandtest.yml create mode 100644 .github/workflows/release_stable.yml create mode 100644 .github/workflows/release_unstable.yml diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..f6079cb --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,25 @@ +## Description + +[Description of the bug or feature] + +### Steps to Reproduce + +1. +2. + +### Related code + +``` +insert short code snippets here +``` + +**Expected behavior:** [What you expected to happen] + +**Actual behavior:** [What actually happened] + + + +## Specifications + +- .NET Version : 6.0.0 +- System : CentOS 7.2 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..f13fc40 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,35 @@ +name: Build + +on: + push: + branches: [ dev, main, master, '**' ] + pull_request: + branches: [ dev, main, master ] + +jobs: + + windows: + name: build on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ windows-latest ] + + steps: + - uses: actions/checkout@v2 + - name: Setup .NET SDK + uses: actions/setup-dotnet@v3 + with: + dotnet-version: | + 7.0.x + 6.0.x + 8.0.x + + - name: Show dotnet Version + run: | + dotnet --list-sdks + dotnet --list-runtimes + + - name: Build with dotnet + run: | + dotnet build --configuration Release D:\a\DisposeScope\DisposeScope\DisposeScope.sln \ No newline at end of file diff --git a/.github/workflows/buildandtest.yml b/.github/workflows/buildandtest.yml new file mode 100644 index 0000000..82a7251 --- /dev/null +++ b/.github/workflows/buildandtest.yml @@ -0,0 +1,43 @@ +name: Build&Test + +on: + push: + branches: [ dev, main, master, '**' ] + pull_request: + branches: [ dev, main, master ] + +jobs: + + linux: + name: build and test on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ ubuntu-latest ] + + steps: + - uses: actions/checkout@v2 + - name: Setup .NET SDK + uses: actions/setup-dotnet@v3 + with: + dotnet-version: | + 6.0.x + 7.0.x + 8.0.x + + - name: Show dotnet Version + run: | + dotnet --list-sdks + dotnet --list-runtimes + + - name: Show docker info + run: | + docker ps -a + + - name: Build with dotnet + run: | + dotnet build --configuration Release /home/runner/work/DisposeScope/DisposeScope/DisposeScope.sln + + - name: Run tests on net8.0 + run: | + dotnet test --framework=net8.0 /home/runner/work/DisposeScope/DisposeScope/tests/Dispose.Scope.Tests.csproj diff --git a/.github/workflows/release_stable.yml b/.github/workflows/release_stable.yml new file mode 100644 index 0000000..70786be --- /dev/null +++ b/.github/workflows/release_stable.yml @@ -0,0 +1,52 @@ +name: Release_Stable + +on: + push: + tags: + - "*.*.*-beta*" + - "*.*.*-rc*" + +jobs: + build_artifact: + name: Build and upload artifact + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: Setup .NET SDK + uses: actions/setup-dotnet@v3 + with: + dotnet-version: | + 6.0.x + 7.0.x + 8.0.x + - name: Build with dotnet + run: dotnet build --configuration Release /home/runner/work/DisposeScope/DisposeScope/DisposeScope.sln + - name: Pack with dotnet + env: + VERSION: ${{ github.ref_name }} + run: dotnet pack /home/runner/work/DisposeScope/DisposeScope/DisposeScope.sln --version-suffix $VERSION -o /home/runner/work/nugetpkgs -c Release --no-build + - name: Upload artifact + uses: actions/upload-artifact@v1 + with: + name: nugetpkgs + path: /home/runner/work/nugetpkgs + + release_nuget: + name: Release to Nuget + needs: build_artifact + runs-on: ubuntu-latest + + steps: + - name: Download build artifacts + uses: actions/download-artifact@v1 + with: + name: nugetpkgs + - name: list nugetpkgs + run: ls nugetpkgs + - name: Release + run: | + for file in nugetpkgs/*.nupkg + do + dotnet nuget push $file -k ${{ secrets.NUGET_API_KEY }} --skip-duplicate -s https://www.nuget.org/api/v2/package + done diff --git a/.github/workflows/release_unstable.yml b/.github/workflows/release_unstable.yml new file mode 100644 index 0000000..97e6281 --- /dev/null +++ b/.github/workflows/release_unstable.yml @@ -0,0 +1,53 @@ +name: Release_Unstable + +on: + push: + tags: + - "*.*.*" + - "!*.*.*-beta*" + - "!*.*.*-rc*" + +jobs: + build_artifact: + name: Build and upload artifact + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: Setup .NET SDK + uses: actions/setup-dotnet@v3 + with: + dotnet-version: | + 6.0.x + 7.0.x + 8.0.x + - name: Build with dotnet + run: dotnet build --configuration Release /home/runner/work/DisposeScope/DisposeScope/DisposeScope.sln + - name: Pack with dotnet + env: + VERSION: ${{ github.ref_name }} + run: dotnet pack /home/runner/work/DisposeScope/DisposeScope/DisposeScope.sln --version-suffix $VERSION -o /home/runner/work/nugetpkgs -c Release --no-build + - name: Upload artifact + uses: actions/upload-artifact@v1 + with: + name: nugetpkgs + path: /home/runner/work/nugetpkgs + + release_nuget: + name: Release to Nuget + needs: build_artifact + runs-on: ubuntu-latest + + steps: + - name: Download build artifacts + uses: actions/download-artifact@v1 + with: + name: nugetpkgs + - name: list nugetpkgs + run: ls nugetpkgs + - name: Release + run: | + for file in nugetpkgs/*.nupkg + do + dotnet nuget push $file -k ${{ secrets.NUGET_API_KEY }} --skip-duplicate -s https://www.nuget.org/api/v2/package + done \ No newline at end of file