diff --git a/.github/workflows/neoxp.yml b/.github/workflows/neoxp.yml deleted file mode 100644 index 23ccdf6d..00000000 --- a/.github/workflows/neoxp.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: Neo Express - -on: - workflow_call: - -env: - DOTNET_VERSION: '7.0.x' - -jobs: - test: - runs-on: ubuntu-latest - steps: - - name: Setup .NET - uses: actions/setup-dotnet@v3 - with: - dotnet-version: ${{ env.DOTNET_VERSION }} - - - name: Download Express - uses: actions/download-artifact@v3 - with: - name: packages - path: ./out - - - name: Install Neo Express - run: dotnet tool install --add-source ./out --verbosity normal --global --prerelease neo.express - - - name: Test Create Command - run: neoxp create - - - name: Test Checkpoint Command (offline) - run: neoxp checkpoint create checkpoints/init --force - - - name: Test Policy Command (offline) - run: | - neoxp policy get --rpc-uri mainnet --json > mainnet-policy.json - neoxp policy sync mainnet-policy --account genesis - - - name: Test Wallet Command - run: | - neoxp wallet create bob - - - name: Test Transfer Command (offline) - run: | - neoxp transfer 10000 gas genesis node1 - neoxp transfer 10000 gas genesis bob - - - name: Test Run Command (online) - timeout-minutes: 1 - run: neoxp run --seconds-per-block 3 --discard & - - - name: Test Transfer Command (online) - run: | - neoxp transfer 10000 gas genesis node1 - neoxp transfer 10000 gas genesis bob - - - name: Test Stop Command (online) - run: neoxp stop --all - diff --git a/.github/workflows/pack.yml b/.github/workflows/pack.yml index e6954a59..bdd507ac 100644 --- a/.github/workflows/pack.yml +++ b/.github/workflows/pack.yml @@ -1,4 +1,4 @@ -name: Run Pack +name: Release (MyGet) on: workflow_call: @@ -38,11 +38,42 @@ jobs: run: | dotnet format neo-express.sln --verify-no-changes --verbosity diagnostic + - name: Restore + run: dotnet restore neo-express.sln + + - name: Build + run: dotnet build neo-express.sln --configuration ${{ env.CONFIGURATION }} --no-restore --verbosity normal --BinaryLogger:./msbuild.binlog + - name: Pack - run: | - dotnet restore neo-express.sln - dotnet build neo-express.sln --configuration ${{ env.CONFIGURATION }} --no-restore --verbosity normal --BinaryLogger:./msbuild.binlog - dotnet pack neo-express.sln --configuration ${{ env.CONFIGURATION }} --output ./out --no-build --verbosity normal + run: dotnet pack neo-express.sln --configuration ${{ env.CONFIGURATION }} --output ./out --no-build --verbosity normal + + - name: Publish Package to MyGet (Neo.Assertions) + if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/development') + run: dotnet nuget push ./out/Neo.Assertions.*.nupkg --source https://www.myget.org/F/neo/api/v3/index.json --api-key ${{ secrets.MYGET_TOKEN }} + + - name: Publish Package to MyGet (Neo.BlockchainToolkit) + if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/development') + run: dotnet nuget push ./out/Neo.BlockchainToolkit.*.nupkg --source https://www.myget.org/F/neo/api/v3/index.json --api-key ${{ secrets.MYGET_TOKEN }} + + - name: Publish Package to MyGet (Neo.BuildTasks) + if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/development') + run: dotnet nuget push ./out/Neo.BuildTasks.*.nupkg --source https://www.myget.org/F/neo/api/v3/index.json --api-key ${{ secrets.MYGET_TOKEN }} + + - name: Publish Package to MyGet (Neo.Collector) + if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/development') + run: dotnet nuget push ./out/Neo.Collector.*.nupkg --source https://www.myget.org/F/neo/api/v3/index.json --api-key ${{ secrets.MYGET_TOKEN }} + + - name: Publish Package to MyGet (Neo.Express) + if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/development') + run: dotnet nuget push ./out/Neo.Express.*.nupkg --source https://www.myget.org/F/neo/api/v3/index.json --api-key ${{ secrets.MYGET_TOKEN }} + + - name: Publish Package to MyGet (Neo.Test.Harness) + if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/development') + run: dotnet nuget push ./out/Neo.Test.Harness.*.nupkg --source https://www.myget.org/F/neo/api/v3/index.json --api-key ${{ secrets.MYGET_TOKEN }} + + - name: Publish Package to MyGet (Neo.Test.Runner) + if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/development') + run: dotnet nuget push ./out/Neo.Test.Runner.*.nupkg --source https://www.myget.org/F/neo/api/v3/index.json --api-key ${{ secrets.MYGET_TOKEN }} - name: Upload Build Log if: always() @@ -50,9 +81,3 @@ jobs: with: name: buildlog path: ./msbuild.binlog - - - name: Upload NeoExpress - uses: actions/upload-artifact@v3 - with: - name: packages - path: ./out/*.nupkg diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 3d1e6158..76d8583c 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -4,6 +4,7 @@ on: pull_request: branches: - master + - development - release/* paths-ignore: - '.gitignore' @@ -12,10 +13,9 @@ on: - '**/*.md' jobs: - pack: - uses: ./.github/workflows/pack.yml test: uses: ./.github/workflows/test.yml - neoxp: - needs: [pack, test] - uses: ./.github/workflows/neoxp.yml + pack: + name: pack + needs: [test] + uses: ./.github/workflows/pack.yml diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 29ef13e7..1874ba2f 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -4,6 +4,7 @@ on: push: branches: - master + - development - release/* paths-ignore: - '.gitignore' @@ -15,25 +16,10 @@ env: DOTNET_VERSION: '7.0.x' jobs: - pack: - uses: ./.github/workflows/pack.yml test: + name: Test Application uses: ./.github/workflows/test.yml - publish: - needs: [pack, test] - runs-on: ubuntu-latest - - steps: - - name: Setup .NET - uses: actions/setup-dotnet@v3 - with: - dotnet-version: ${{ env.DOTNET_VERSION }} - - - name: Download Express - uses: actions/download-artifact@v3 - with: - name: packages - path: ./out - - - name: Publish to Azure Artifacts - run: dotnet nuget push ./out/*.nupkg --source https://www.myget.org/F/neo/api/v3/index.json --api-key ${{ secrets.MYGET_TOKEN }} + pack: + name: MyGet Release + needs: [test] + uses: ./.github/workflows/pack.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c35c51e9..a8490e57 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,10 +5,12 @@ on: jobs: standalone: + name: Standalone Build if: startsWith(github.ref, 'refs/heads/release/') uses: ./.github/workflows/standalone.yml build: + name: Standalone Pack/Release/Publish if: startsWith(github.ref, 'refs/heads/release/') needs: [standalone] runs-on: ubuntu-latest @@ -31,31 +33,7 @@ jobs: run: dotnet restore neo-express.sln - name: Pack NeoExpress - run: dotnet pack src/neoxp --output ./dist --configuration Release --no-restore --verbosity normal - - - name: Pack NeoTrace - run: dotnet pack src/trace --output ./dist --configuration Release --no-restore --verbosity normal - - - name: Pack NeoWorkNet - run: dotnet pack src/worknet --output ./dist --configuration Release --no-restore --verbosity normal - - - name: Pack BlockchainToolkitLibrary - run: dotnet pack src/bctklib --output ./dist --configuration Release --no-restore --verbosity normal - - - name: Pack NeoAssertions - run: dotnet pack src/assertions --output ./dist --configuration Release --no-restore --verbosity normal - - - name: Pack NeoBuildTasks - run: dotnet pack src/build-tasks --output ./dist --configuration Release --no-restore --verbosity normal - - - name: Pack NeoCollector - run: dotnet pack src/collector --output ./dist --configuration Release --no-restore --verbosity normal - - - name: Pack NeoTestRunner - run: dotnet pack src/runner --output ./dist --configuration Release --no-restore --verbosity normal - - - name: Pack NeoTestHarness - run: dotnet pack src/test-harness --output ./dist --configuration Release --no-restore --verbosity normal + run: dotnet pack neo-express.sln --output ./dist --configuration Release --no-restore --verbosity normal - name: Download Express Files (Standalone) uses: actions/download-artifact@v3 diff --git a/.github/workflows/standalone.yml b/.github/workflows/standalone.yml index d0e03c7d..21d7c4df 100644 --- a/.github/workflows/standalone.yml +++ b/.github/workflows/standalone.yml @@ -1,4 +1,4 @@ -name: Run Standalone / Build / Pack +name: Standalone Build on: workflow_call: @@ -12,6 +12,7 @@ env: jobs: osx-pack: + name: MacOS x64/arm64 runs-on: macos-latest steps: @@ -109,6 +110,7 @@ jobs: ${{ env.UNIX_DIST_DIR }}/* linux-pack: + name: Linux x64/arm64 runs-on: ubuntu-latest steps: - name: Checkout Code @@ -236,6 +238,7 @@ jobs: ${{ env.UNIX_DIST_DIR }}/* win-pack: + name: Windows x64/arm64 runs-on: windows-latest steps: - name: Checkout Code diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d92e6c2c..e9e2489f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,17 +25,20 @@ jobs: with: dotnet-version: ${{ env.DOTNET_VERSION }} - - name: Install RocksDB Dependencies - if: ${{ runner.os == 'Linux'}} - run: | - sudo apt-get update - sudo apt-get install libsnappy-dev libc6-dev librocksdb-dev -y + # - name: Install RocksDB Dependencies + # if: ${{ runner.os == 'Linux'}} + # run: | + # sudo apt-get update + # sudo apt-get install libsnappy-dev libc6-dev librocksdb-dev -y - - name: Build and Test - run: | - dotnet restore neo-express.sln - dotnet build neo-express.sln --configuration ${{ env.CONFIGURATION }} --no-restore --verbosity normal --BinaryLogger:./msbuild.${{ matrix.os }}.binlog - dotnet test neo-express.sln --configuration ${{ env.CONFIGURATION }} --no-build --verbosity normal --collect:"XPlat Code Coverage" + - name: Restore + run: dotnet restore neo-express.sln + + - name: Build + run: dotnet build neo-express.sln --configuration ${{ env.CONFIGURATION }} --no-restore --verbosity normal --BinaryLogger:./msbuild.${{ matrix.os }}.binlog + + - name: Test + run: dotnet test neo-express.sln --configuration ${{ env.CONFIGURATION }} --no-build --verbosity normal --collect:"XPlat Code Coverage" - name: Upload Coverage uses: actions/upload-artifact@v3 @@ -49,8 +52,47 @@ jobs: name: buildlog path: ./msbuild.${{ matrix.os }}.binlog + - name: Pack for Install + run: dotnet pack neo-express.sln --configuration ${{ env.CONFIGURATION }} --output ./out --no-build --verbosity normal + + - name: Install neoxp tool + run: dotnet tool install --add-source ./out --verbosity normal --global --prerelease neo.express + + - name: Test Create Command (neoxp) + run: neoxp create + + - name: Test Checkpoint Command (offline) (neoxp) + run: neoxp checkpoint create checkpoints/init --force + + - name: Test Policy Command (offline) (neoxp) + run: | + neoxp policy get --rpc-uri mainnet --json > mainnet-policy.json + neoxp policy sync mainnet-policy --account genesis + + - name: Test Wallet Command (neoxp) + run: | + neoxp wallet create bob + + - name: Test Transfer Command (offline) (neoxp) + run: | + neoxp transfer 10000 gas genesis node1 + neoxp transfer 10000 gas genesis bob + + - name: Test Run Command (online) (neoxp) + timeout-minutes: 1 + run: neoxp run --seconds-per-block 3 --discard & + + - name: Test Transfer Command (online) (neoxp) + run: | + neoxp transfer 10000 gas genesis node1 + neoxp transfer 10000 gas genesis bob + + - name: Test Stop Command (online) (neoxp) + run: neoxp stop --all + report: - needs: build + name: Build Coverage (Report) + needs: [build] runs-on: ubuntu-latest steps: diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 6843a7be..ecab1726 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -4,6 +4,7 @@ The Neo Project The Neo Project 2015-2023 The Neo Project + net7.0 enable 10 enable @@ -13,8 +14,9 @@ Neo;Blockchain;Smart Contract git https://github.com/neo-project/neo-express.git + true snupkg - net7.0 + ../neo-cli.ico 3.6.2 diff --git a/src/assertions/assertions.csproj b/src/assertions/assertions.csproj index 48a4ac76..9054a9e8 100644 --- a/src/assertions/assertions.csproj +++ b/src/assertions/assertions.csproj @@ -7,8 +7,6 @@ Neo.Assertions true Embedded - true - snupkg diff --git a/src/bctklib/bctklib.csproj b/src/bctklib/bctklib.csproj index a3c98adb..a0fbb085 100644 --- a/src/bctklib/bctklib.csproj +++ b/src/bctklib/bctklib.csproj @@ -1,11 +1,10 @@ true - Embedded true - true + Neo.BlockchainToolkit Neo.BlockchainToolkit - snupkg + Embedded diff --git a/src/collector/collector.csproj b/src/collector/collector.csproj index 518447f2..dac448a9 100644 --- a/src/collector/collector.csproj +++ b/src/collector/collector.csproj @@ -11,8 +11,6 @@ netstandard2.0;net472 true Embedded - true - snupkg diff --git a/src/neo-cli.ico b/src/neo-cli.ico new file mode 100644 index 00000000..403aa7f3 Binary files /dev/null and b/src/neo-cli.ico differ diff --git a/src/test-harness/test-harness.csproj b/src/test-harness/test-harness.csproj index 995f160d..8640afad 100644 --- a/src/test-harness/test-harness.csproj +++ b/src/test-harness/test-harness.csproj @@ -6,8 +6,6 @@ NeoTestHarness true Embedded - true - snupkg