Browse Source

feat: New CI/CD with auto-release and release binaries

Gustavo Carreno 2 years ago
parent
commit
e6f77aa419
4 changed files with 116 additions and 14 deletions
  1. 102 10
      .github/workflows/workflow.yml
  2. 6 4
      .gitignore
  3. 8 0
      release-notes.md
  4. BIN
      windows-dll/libcrypto-1_1-x64.dll

+ 102 - 10
.github/workflows/workflow.yml

@@ -1,34 +1,126 @@
 name: build
 name: build
 
 
 on:
 on:
-  pull_request:
   push:
   push:
-    paths-ignore:
-    - "README.md"
-    branches:
-      - master
-      - Releases/*
+    branches: [ master ]
+    tags: [ "*" ]
+    paths-ignore: [ "README.md", "history.md", "release-notes.md" ]
+
+  pull_request:
+    branches: [ master ]
 
 
 jobs:
 jobs:
   build:
   build:
+    name: Build
     runs-on: ${{ matrix.operating-system }}
     runs-on: ${{ matrix.operating-system }}
+    
     strategy:
     strategy:
       matrix:
       matrix:
         operating-system: [windows-latest,ubuntu-latest,macos-latest]
         operating-system: [windows-latest,ubuntu-latest,macos-latest]
-        lazarus-versions: [stable, 2.0.10]
+#        lazarus-versions: [stable, 2.2.2, 2.2.0, 2.0.12]
+        lazarus-versions: [stable]
+        
     steps:
     steps:
-    - uses: actions/checkout@v2
+    - name: Checkout Repository
+      uses: actions/checkout@v2
+      with:
+        submodules: false
+        
     - name: Install Lazarus
     - name: Install Lazarus
-      uses: gcarreno/[email protected]
+      uses: gcarreno/[email protected]
       with:
       with:
+        with-cache: false
         lazarus-version: ${{ matrix.lazarus-versions }}
         lazarus-version: ${{ matrix.lazarus-versions }}
+        
     - name: Build the Pascal daemon
     - name: Build the Pascal daemon
       run: lazbuild -B "src/pascalcoin_daemon.lpi"
       run: lazbuild -B "src/pascalcoin_daemon.lpi"
+      
     - name: Build reference Pascal Miner
     - name: Build reference Pascal Miner
       run: lazbuild -B "src/pascalcoin_miner.lpi"
       run: lazbuild -B "src/pascalcoin_miner.lpi"
-    - name: Build the Main Wallet Application
+      
+    - name: Build the Main Wallet Application (Windows/Linux)
       if: ${{ matrix.operating-system != 'macos-latest' }}
       if: ${{ matrix.operating-system != 'macos-latest' }}
       run: lazbuild -B "src/pascalcoin_wallet_classic.lpi"
       run: lazbuild -B "src/pascalcoin_wallet_classic.lpi"
+      
     - name: Build the Main Wallet Application (macOS)
     - name: Build the Main Wallet Application (macOS)
       if: ${{ matrix.operating-system == 'macos-latest' }}
       if: ${{ matrix.operating-system == 'macos-latest' }}
       run: lazbuild -B --ws=cocoa "src/pascalcoin_wallet_classic.lpi"
       run: lazbuild -B --ws=cocoa "src/pascalcoin_wallet_classic.lpi"
+
+    - name: Upload binary (Windows)
+      if: ${{ (matrix.operating-system == 'windows-latest')  &&  (matrix.lazarus-versions == 'stable') }}
+      uses: actions/upload-artifact@v2
+      with:
+        name: PascalCoinWindows
+        path: |
+          src/pascalcoin_daemon.exe
+          src/PascalCoinMiner.exe
+          src/PascalCoinWalletLazarus.exe
+
+    - name: Upload binary (Ubuntu)
+      if: ${{ (matrix.operating-system == 'ubuntu-latest')  &&  (matrix.lazarus-versions == 'stable') }}
+      uses: actions/upload-artifact@v2
+      with:
+        name: PascalCoinLinux
+        path: |
+          src/pascalcoin_daemon
+          src/PascalCoinMiner
+          src/PascalCoinWalletLazarus
+
+    - name: Upload binary (macOS)
+      if: ${{ (matrix.operating-system == 'macos-latest')  &&  (matrix.lazarus-versions == 'stable') }}
+      uses: actions/upload-artifact@v2
+      with:
+        name: PascalCoinMacOS
+        path: |
+          src/pascalcoin_daemon
+          src/PascalCoinMiner
+          src/PascalCoinWalletLazarus
+
+  package-release:
+    if: contains(github.ref, '/tags/')
+
+    name: Package and create GitHub Release
+    runs-on: ubuntu-latest
+    needs: build
+
+    steps:
+    - name: Checkout
+      uses: actions/checkout@v2
+
+    - name: Set output
+      id: vars
+      run: echo "tag=${GITHUB_REF#refs/*/}" >> ${GITHUB_OUTPUT}
+
+    - name: Download the Release binary
+      uses: actions/download-artifact@v2
+
+    - name: List files
+      run: |
+        ls -alF PascalCoinWindows
+        ls -alF PascalCoinLinux
+        ls -alF PascalCoinMacOS
+
+    - name: Create release files
+      run: |
+        cd PascalCoinWindows
+        cp ../windows-dll/*.dll .
+        zip -r PascalCoin-${{ steps.vars.outputs.tag }}-x86_64-win64.zip *.exe *.dll
+        cd ../PascalCoinLinux
+        chmod +x PascalCoin* pascalcoin*
+        tar -zcvf PascalCoin-${{ steps.vars.outputs.tag }}-x86_64-linux.tar.gz PascalCoin* pascalcoin*
+        cd ../PascalCoinMacOS
+        chmod +x PascalCoin* pascalcoin*
+        tar -zcvf PascalCoin-${{ steps.vars.outputs.tag }}-x86_64-darwin.tar.gz PascalCoin* pascalcoin*
+
+    - name: Create GitHub release
+      uses: softprops/action-gh-release@v1
+      with:
+        name: PascalCoin ${{ steps.vars.outputs.tag }}
+        body_path: release-notes.md
+        files: |
+          PascalCoinWindows/*.zip
+          PascalCoinLinux/*.tar.gz
+          PascalCoinMacOS/*.tar.gz
+      env:
+        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+

+ 6 - 4
.gitignore

@@ -4,9 +4,11 @@
 *.identcache
 *.identcache
 *.stat
 *.stat
 /src/*.app
 /src/*.app
-src/PascalCoinWallet
-src/PascalCoinWalletLazarus
-src/PascalCoinWalletExperimental
+pascalcoin_daemon
+PascalCoinMiner
+PascalCoinWallet
+PascalCoinWalletLazarus
+PascalCoinWalletExperimental
 *.dSYM*
 *.dSYM*
 *.dbg
 *.dbg
 *.res
 *.res
@@ -14,7 +16,7 @@ src/PascalCoinWalletExperimental
 ## OpenSSL 
 ## OpenSSL 
 libeay32.dll
 libeay32.dll
 libeay64.dll
 libeay64.dll
-libcrypto-1_1-x64.dll
+#libcrypto-1_1-x64.dll
 libcrypto-1_1.dll
 libcrypto-1_1.dll
 libcrypto.so.1.1
 libcrypto.so.1.1
 
 

+ 8 - 0
release-notes.md

@@ -0,0 +1,8 @@
+# PascalCoin v5.7.1
+
+- Fix cls function TAccountComp.EqualOperationBlocks
+- Create UAbstractMemBlockchainStorage.pas
+- Enable to use indexed data on Blockchain storage
+- Added OnFLushedCache event on AbstractMem library
+- Added OnFLushedCache event log
+- Memory Improvements

BIN
windows-dll/libcrypto-1_1-x64.dll