Add github actions
This commit is contained in:
		
							parent
							
								
									544725a018
								
							
						
					
					
						commit
						82b37bfa0d
					
				
							
								
								
									
										18
									
								
								.github/workflows/audit.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								.github/workflows/audit.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,18 @@
 | 
			
		||||
name: Security audit
 | 
			
		||||
on:
 | 
			
		||||
  pull_request:
 | 
			
		||||
    paths: Cargo.lock
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: '0 0 * * *'
 | 
			
		||||
jobs:
 | 
			
		||||
  security_audit:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout sources
 | 
			
		||||
        uses: actions/checkout@v1
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 50
 | 
			
		||||
      - name: Run cargo audit
 | 
			
		||||
        uses: actions-rs/audit-check@v1
 | 
			
		||||
        with:
 | 
			
		||||
          token: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
							
								
								
									
										99
									
								
								.github/workflows/build-test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								.github/workflows/build-test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,99 @@
 | 
			
		||||
name:                           Build and Test Suite
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  pull_request:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - master
 | 
			
		||||
      - stable
 | 
			
		||||
jobs:
 | 
			
		||||
  build-tests:
 | 
			
		||||
    name:                       Test and Build
 | 
			
		||||
    env:
 | 
			
		||||
      SCCACHE_CACHE_SIZE:       "1G"
 | 
			
		||||
      SCCACHE_IDLE_TIMEOUT:     0
 | 
			
		||||
    strategy:
 | 
			
		||||
      matrix:
 | 
			
		||||
        platform:
 | 
			
		||||
          - ubuntu-20.04
 | 
			
		||||
          - macos-latest
 | 
			
		||||
          - windows-latest
 | 
			
		||||
        toolchain:
 | 
			
		||||
          - stable
 | 
			
		||||
    runs-on:                    ${{ matrix.platform }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name:                   Checkout sources
 | 
			
		||||
        uses:                   actions/checkout@master
 | 
			
		||||
        with:
 | 
			
		||||
          submodules:           true
 | 
			
		||||
      - name:                   Install toolchain
 | 
			
		||||
        uses:                   actions-rs/toolchain@v1
 | 
			
		||||
        with:
 | 
			
		||||
          toolchain:            ${{ matrix.toolchain }}
 | 
			
		||||
          profile:              minimal
 | 
			
		||||
          override:             true
 | 
			
		||||
      - name:                   Cache cargo registry
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 ~/.cargo/registry
 | 
			
		||||
          key:                  ${{ runner.os }}-cargo-registry-build-tests-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      - name:                   Cache cargo index
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 ~/.cargo/git
 | 
			
		||||
          key:                  ${{ runner.os }}-cargo-git-build-tests-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      - name:                   Cache cargo build
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 target
 | 
			
		||||
          key:                  ${{ runner.os }}-cargo-build-target-build-tests-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      - name:                   Cache sccache linux
 | 
			
		||||
        if:                     matrix.platform == 'ubuntu-20.04'
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 "/home/runner/.cache/sccache"
 | 
			
		||||
          key:                  ${{ runner.os }}-sccache-build-tests-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      - name:                   Cache sccache MacOS
 | 
			
		||||
        if:                     matrix.platform == 'macos-latest'
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 "/Users/runner/Library/Caches/Mozilla.sccache"
 | 
			
		||||
          key:                  ${{ runner.os }}-sccache-build-tests-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      - name:                   Cache sccache Windows
 | 
			
		||||
        if:                     matrix.platform == 'windows-latest'
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 "C:\\Users\\runneradmin\\AppData\\Local\\Mozilla\\sccache\\cache"
 | 
			
		||||
          key:                  ${{ runner.os }}-sccache-build-tests-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      - name:                   Install sccache for ${{ matrix.platform }}
 | 
			
		||||
        shell:                  pwsh
 | 
			
		||||
        run:                    pwsh scripts/actions/install-sccache.ps1 ${{ runner.os}}
 | 
			
		||||
      - name:                   Install LLVM for Windows
 | 
			
		||||
        if:                     matrix.platform == 'windows-latest'
 | 
			
		||||
        run:                    choco install llvm
 | 
			
		||||
      - name:                   Sccache statistics
 | 
			
		||||
        run:                    sccache --show-stats
 | 
			
		||||
      - name:                   Build tests
 | 
			
		||||
        uses:                   actions-rs/cargo@v1
 | 
			
		||||
        with:
 | 
			
		||||
          command:              test
 | 
			
		||||
          args:                 --locked --all --release --features "json-tests" --verbose --no-run
 | 
			
		||||
      - name:                   Run tests for ${{ matrix.platform }}
 | 
			
		||||
        if:                     matrix.platform == 'windows-latest'
 | 
			
		||||
        continue-on-error: true #Skip step if Windows tests failure
 | 
			
		||||
        uses:                   actions-rs/cargo@v1
 | 
			
		||||
        with:
 | 
			
		||||
          command:              test
 | 
			
		||||
          args:                 --locked --all --release --features "json-tests" --verbose
 | 
			
		||||
      - name:                   Run tests for ${{ matrix.platform }}
 | 
			
		||||
        if:                     matrix.platform != 'windows-latest'
 | 
			
		||||
        uses:                   actions-rs/cargo@v1
 | 
			
		||||
        with:
 | 
			
		||||
          command:              test
 | 
			
		||||
          args:                 --locked --all --release --features "json-tests" --verbose
 | 
			
		||||
      - name:                   Stop sccache
 | 
			
		||||
        if:                     always()
 | 
			
		||||
        run:                    sccache --stop-server
 | 
			
		||||
      - name:                   Prepare build directory for cache
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run:                    bash scripts/actions/clean-target.sh
 | 
			
		||||
							
								
								
									
										338
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										338
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,338 @@
 | 
			
		||||
name:                           Build Release Suite
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - stable
 | 
			
		||||
    tags:
 | 
			
		||||
      - v*
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build:
 | 
			
		||||
    name:                       Build Release
 | 
			
		||||
    env:
 | 
			
		||||
      SCCACHE_CACHE_SIZE:       "1G"
 | 
			
		||||
      SCCACHE_IDLE_TIMEOUT:     0
 | 
			
		||||
      AWS_S3_ARTIFACTS_BUCKET:  "openethereum-releases"
 | 
			
		||||
      AWS_REGION:               "us-east-1"
 | 
			
		||||
    strategy:
 | 
			
		||||
      matrix:
 | 
			
		||||
        platform:
 | 
			
		||||
          - ubuntu-20.04
 | 
			
		||||
          - macos-latest
 | 
			
		||||
          - windows-latest
 | 
			
		||||
        toolchain:
 | 
			
		||||
          - stable
 | 
			
		||||
    runs-on:                    ${{ matrix.platform }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - name:                   Checkout sources
 | 
			
		||||
        uses:                   actions/checkout@master
 | 
			
		||||
      - name:                   Install toolchain
 | 
			
		||||
        uses:                   actions-rs/toolchain@v1
 | 
			
		||||
        with:
 | 
			
		||||
          toolchain:            ${{ matrix.toolchain }}
 | 
			
		||||
          profile:              minimal
 | 
			
		||||
          override:             true
 | 
			
		||||
      - name:                   Cache cargo registry
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 ~/.cargo/registry
 | 
			
		||||
          key:                  ${{ runner.os }}-cargo-registry-build-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      - name:                   Cache cargo index
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 ~/.cargo/git
 | 
			
		||||
          key:                  ${{ runner.os }}-cargo-git-build-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      - name:                   Cache cargo build
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 target
 | 
			
		||||
          key:                  ${{ runner.os }}-cargo-build-target-build-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      - name:                   Cache sccache linux
 | 
			
		||||
        if:                     matrix.platform == 'ubuntu-20.04'
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 "/home/runner/.cache/sccache"
 | 
			
		||||
          key:                  ${{ runner.os }}-sccache-build-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      - name:                   Cache sccache MacOS
 | 
			
		||||
        if:                     matrix.platform == 'macos-latest'
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 "/Users/runner/Library/Caches/Mozilla.sccache"
 | 
			
		||||
          key:                  ${{ runner.os }}-sccache-build-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      - name:                   Cache sccache Windows
 | 
			
		||||
        if:                     matrix.platform == 'windows-latest'
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 "C:\\Users\\runneradmin\\AppData\\Local\\Mozilla\\sccache\\cache"
 | 
			
		||||
          key:                  ${{ runner.os }}-sccache-build-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      - name:                   Install sccache for ${{ matrix.platform }}
 | 
			
		||||
        shell:                  pwsh
 | 
			
		||||
        run:                    pwsh scripts/actions/install-sccache.ps1 ${{ runner.os}}
 | 
			
		||||
 | 
			
		||||
      # ==============================
 | 
			
		||||
      #       Windows Build
 | 
			
		||||
      # ==============================
 | 
			
		||||
 | 
			
		||||
      - name:                   Install LLVM for Windows
 | 
			
		||||
        if:                     matrix.platform == 'windows-latest'
 | 
			
		||||
        run:                    choco install llvm
 | 
			
		||||
 | 
			
		||||
      - name:                   Sccache statistics
 | 
			
		||||
        run:                    sccache --show-stats
 | 
			
		||||
 | 
			
		||||
      - name:                   Build OpenEthereum for Windows
 | 
			
		||||
        if:                     matrix.platform == 'windows-latest'
 | 
			
		||||
        run:                    sh scripts/actions/build-windows.sh ${{matrix.platform}}
 | 
			
		||||
 | 
			
		||||
      - name:                   Upload Windows build
 | 
			
		||||
        uses:                   actions/upload-artifact@v2
 | 
			
		||||
        if:                     matrix.platform == 'windows-latest'
 | 
			
		||||
        with:
 | 
			
		||||
          name:                 windows-artifacts
 | 
			
		||||
          path:                 artifacts
 | 
			
		||||
 | 
			
		||||
      # ==============================
 | 
			
		||||
      #       Linux/Macos Build
 | 
			
		||||
      # ==============================
 | 
			
		||||
 | 
			
		||||
      - name:                   Build OpenEthereum for ${{matrix.platform}}
 | 
			
		||||
        if:                     matrix.platform != 'windows-latest'
 | 
			
		||||
        run:                    sh scripts/actions/build-linux.sh ${{matrix.platform}}
 | 
			
		||||
 | 
			
		||||
      - name:                   Upload Linux build
 | 
			
		||||
        uses:                   actions/upload-artifact@v2
 | 
			
		||||
        if:                     matrix.platform == 'ubuntu-20.04'
 | 
			
		||||
        with:
 | 
			
		||||
          name:                 linux-artifacts
 | 
			
		||||
          path:                 artifacts
 | 
			
		||||
 | 
			
		||||
      - name:                   Upload MacOS build
 | 
			
		||||
        uses:                   actions/upload-artifact@v2
 | 
			
		||||
        if:                     matrix.platform == 'macos-latest'
 | 
			
		||||
        with:
 | 
			
		||||
          name:                 macos-artifacts
 | 
			
		||||
          path:                 artifacts
 | 
			
		||||
 | 
			
		||||
      # ==============================
 | 
			
		||||
      #       End builds
 | 
			
		||||
      # ==============================
 | 
			
		||||
 | 
			
		||||
      - name:                   Stop sccache
 | 
			
		||||
        if:                     always()
 | 
			
		||||
        run:                    sccache --stop-server
 | 
			
		||||
 | 
			
		||||
      - name:                   Prepare build directory for cache
 | 
			
		||||
        shell:                  bash
 | 
			
		||||
        run:                    bash scripts/actions/clean-target.sh
 | 
			
		||||
 | 
			
		||||
  zip-artifacts-creator:
 | 
			
		||||
    name:                       Create zip artifacts
 | 
			
		||||
    needs:                      build
 | 
			
		||||
    runs-on:                    ubuntu-20.04
 | 
			
		||||
    steps:
 | 
			
		||||
      - name:                   Set env
 | 
			
		||||
        run:                    echo ::set-env name=RELEASE_VERSION::${GITHUB_REF#refs/*/}
 | 
			
		||||
 | 
			
		||||
      # ==============================
 | 
			
		||||
      #       Create ZIP files
 | 
			
		||||
      # ==============================
 | 
			
		||||
 | 
			
		||||
      - name:                   Download Windows artifacts
 | 
			
		||||
        uses:                   actions/download-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name:                 windows-artifacts
 | 
			
		||||
          path:                 windows-artifacts
 | 
			
		||||
 | 
			
		||||
      - name:                   Download Linux artifacts
 | 
			
		||||
        uses:                   actions/download-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name:                 linux-artifacts
 | 
			
		||||
          path:                 linux-artifacts
 | 
			
		||||
 | 
			
		||||
      - name:                   Download MacOS artifacts
 | 
			
		||||
        uses:                   actions/download-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name:                 macos-artifacts
 | 
			
		||||
          path:                 macos-artifacts
 | 
			
		||||
 | 
			
		||||
      - name:                   Display structure of downloaded files
 | 
			
		||||
        run:                    ls
 | 
			
		||||
 | 
			
		||||
      - name:                   Create zip Linux
 | 
			
		||||
        id:                     create_zip_linux
 | 
			
		||||
        run: |
 | 
			
		||||
          cd linux-artifacts/
 | 
			
		||||
          zip -rT openethereum-linux-${{ env.RELEASE_VERSION }}.zip *
 | 
			
		||||
          ls openethereum-linux-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
          cd ..
 | 
			
		||||
          mv linux-artifacts/openethereum-linux-${{ env.RELEASE_VERSION }}.zip .
 | 
			
		||||
 | 
			
		||||
          echo "Setting outputs..."
 | 
			
		||||
          echo ::set-output name=LINUX_ARTIFACT::openethereum-linux-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
          echo ::set-output name=LINUX_SHASUM::$(shasum -a 256 openethereum-linux-${{ env.RELEASE_VERSION }}.zip | awk '{print $1}')
 | 
			
		||||
 | 
			
		||||
      - name:                   Create zip MacOS
 | 
			
		||||
        id:                     create_zip_macos
 | 
			
		||||
        run: |
 | 
			
		||||
          cd macos-artifacts/
 | 
			
		||||
          zip -rT openethereum-macos-${{ env.RELEASE_VERSION }}.zip *
 | 
			
		||||
          ls openethereum-macos-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
          cd ..
 | 
			
		||||
          mv macos-artifacts/openethereum-macos-${{ env.RELEASE_VERSION }}.zip .
 | 
			
		||||
 | 
			
		||||
          echo "Setting outputs..."
 | 
			
		||||
          echo ::set-output name=MACOS_ARTIFACT::openethereum-macos-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
          echo ::set-output name=MACOS_SHASUM::$(shasum -a 256 openethereum-macos-${{ env.RELEASE_VERSION }}.zip | awk '{print $1}')
 | 
			
		||||
 | 
			
		||||
      - name:                   Create zip Windows
 | 
			
		||||
        id:                     create_zip_windows
 | 
			
		||||
        run: |
 | 
			
		||||
          cd windows-artifacts/
 | 
			
		||||
          zip -rT openethereum-windows-${{ env.RELEASE_VERSION }}.zip *
 | 
			
		||||
          ls openethereum-windows-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
          cd ..
 | 
			
		||||
          mv windows-artifacts/openethereum-windows-${{ env.RELEASE_VERSION }}.zip .
 | 
			
		||||
 | 
			
		||||
          echo "Setting outputs..."
 | 
			
		||||
          echo ::set-output name=WINDOWS_ARTIFACT::openethereum-windows-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
          echo ::set-output name=WINDOWS_SHASUM::$(shasum -a 256 openethereum-windows-${{ env.RELEASE_VERSION }}.zip | awk '{print $1}')
 | 
			
		||||
 | 
			
		||||
      # =======================================================================
 | 
			
		||||
      # Upload artifacts
 | 
			
		||||
      # This is required to share artifacts between different jobs
 | 
			
		||||
      # =======================================================================
 | 
			
		||||
 | 
			
		||||
      - name:                   Upload artifacts
 | 
			
		||||
        uses:                   actions/upload-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name:                 openethereum-linux-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
          path:                 openethereum-linux-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
 | 
			
		||||
      - name:                   Upload artifacts
 | 
			
		||||
        uses:                   actions/upload-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name:                 openethereum-macos-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
          path:                 openethereum-macos-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
 | 
			
		||||
      - name:                   Upload artifacts
 | 
			
		||||
        uses:                   actions/upload-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name:                 openethereum-windows-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
          path:                 openethereum-windows-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
 | 
			
		||||
      # =======================================================================
 | 
			
		||||
      # Upload artifacts to S3
 | 
			
		||||
      # This is required by some software distribution systems which require
 | 
			
		||||
      # artifacts to be downloadable, like Brew on MacOS.
 | 
			
		||||
      # =======================================================================
 | 
			
		||||
      - name:                   Configure AWS credentials
 | 
			
		||||
        uses:                   aws-actions/configure-aws-credentials@v1
 | 
			
		||||
        with:
 | 
			
		||||
          aws-access-key-id:     ${{ secrets.AWS_ACCESS_KEY_ID }}
 | 
			
		||||
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
 | 
			
		||||
          aws-region:            ${{ env.AWS_REGION }}
 | 
			
		||||
 | 
			
		||||
      - name:                   Copy files to S3 with the AWS CLI
 | 
			
		||||
        run: |
 | 
			
		||||
          # Deploy zip artifacts to S3 bucket to a directory whose name is the tagged release version.
 | 
			
		||||
          # Deploy macos binary artifact (if required, add more `aws s3 cp` commands to deploy specific OS versions)
 | 
			
		||||
          aws s3 cp macos-artifacts/openethereum s3://${{ env.AWS_S3_ARTIFACTS_BUCKET }}/${{ env.RELEASE_VERSION }}/macos/
 | 
			
		||||
 | 
			
		||||
    outputs:
 | 
			
		||||
      linux-artifact:           ${{ steps.create_zip_linux.outputs.LINUX_ARTIFACT }}
 | 
			
		||||
      linux-shasum:             ${{ steps.create_zip_linux.outputs.LINUX_SHASUM }}
 | 
			
		||||
      macos-artifact:           ${{ steps.create_zip_macos.outputs.MACOS_ARTIFACT }}
 | 
			
		||||
      macos-shasum:             ${{ steps.create_zip_macos.outputs.MACOS_SHASUM }}
 | 
			
		||||
      windows-artifact:         ${{ steps.create_zip_windows.outputs.WINDOWS_ARTIFACT }}
 | 
			
		||||
      windows-shasum:           ${{ steps.create_zip_windows.outputs.WINDOWS_SHASUM }}
 | 
			
		||||
 | 
			
		||||
  draft-release:
 | 
			
		||||
    name:                       Draft Release
 | 
			
		||||
    needs:                      zip-artifacts-creator
 | 
			
		||||
    runs-on:                    ubuntu-20.04
 | 
			
		||||
    steps:
 | 
			
		||||
      - name:                   Set env
 | 
			
		||||
        run:                    echo ::set-env name=RELEASE_VERSION::${GITHUB_REF#refs/*/}
 | 
			
		||||
 | 
			
		||||
      # ==============================
 | 
			
		||||
      #       Download artifacts
 | 
			
		||||
      # ==============================
 | 
			
		||||
 | 
			
		||||
      - name:                   Download artifacts
 | 
			
		||||
        uses:                   actions/download-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name:                 openethereum-linux-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
 | 
			
		||||
      - name:                   Download artifacts
 | 
			
		||||
        uses:                   actions/download-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name:                 openethereum-macos-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
 | 
			
		||||
      - name:                   Download artifacts
 | 
			
		||||
        uses:                   actions/download-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          name:                 openethereum-windows-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
 | 
			
		||||
      - name:                   Display structure of downloaded files
 | 
			
		||||
        run:                    ls
 | 
			
		||||
 | 
			
		||||
      # ==============================
 | 
			
		||||
      #       Create release draft
 | 
			
		||||
      # ==============================
 | 
			
		||||
 | 
			
		||||
      - name:                   Create Release Draft
 | 
			
		||||
        id:                     create_release_draft
 | 
			
		||||
        uses:                   actions/create-release@v1
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN:         ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
 | 
			
		||||
        with:
 | 
			
		||||
          tag_name:             ${{ github.ref }}
 | 
			
		||||
          release_name:         OpenEthereum ${{ github.ref }}
 | 
			
		||||
          body: |
 | 
			
		||||
            This release contains <ADD_TEXT>
 | 
			
		||||
 | 
			
		||||
            | System | Architecture | Binary | Sha256 Checksum |
 | 
			
		||||
            |:---:|:---:|:---:|:---|
 | 
			
		||||
            | <img src="https://gist.github.com/5chdn/1fce888fde1d773761f809b607757f76/raw/44c4f0fc63f1ea8e61a9513af5131ef65eaa6c75/apple.png" alt="Apple Icon by Pixel Perfect from https://www.flaticon.com/authors/pixel-perfect" style="width: 32px;"/> | x64 | [${{ needs.zip-artifacts-creator.outputs.macos-artifact }}](https://github.com/openethereum/openethereum/releases/download/${{ env.RELEASE_VERSION }}/${{ needs.zip-artifacts-creator.outputs.macos-artifact }}) | `${{ needs.zip-artifacts-creator.outputs.macos-shasum }}` |
 | 
			
		||||
            | <img src="https://gist.github.com/5chdn/1fce888fde1d773761f809b607757f76/raw/44c4f0fc63f1ea8e61a9513af5131ef65eaa6c75/linux.png" alt="Linux Icon by Pixel Perfect from https://www.flaticon.com/authors/pixel-perfect" style="width: 32px;"/> | x64 | [${{ needs.zip-artifacts-creator.outputs.linux-artifact }}](https://github.com/openethereum/openethereum/releases/download/${{ env.RELEASE_VERSION }}/${{ needs.zip-artifacts-creator.outputs.linux-artifact }}) | `${{ needs.zip-artifacts-creator.outputs.linux-shasum }}` |
 | 
			
		||||
            | <img src="https://gist.github.com/5chdn/1fce888fde1d773761f809b607757f76/raw/44c4f0fc63f1ea8e61a9513af5131ef65eaa6c75/windows.png" alt="Windows Icon by Pixel Perfect from https://www.flaticon.com/authors/pixel-perfect" style="width: 32px;"/> | x64 | [${{ needs.zip-artifacts-creator.outputs.windows-artifact }}](https://github.com/openethereum/openethereum/releases/download/${{ env.RELEASE_VERSION }}/${{ needs.zip-artifacts-creator.outputs.windows-artifact }}) | `${{ needs.zip-artifacts-creator.outputs.windows-shasum }}` |
 | 
			
		||||
            | | | | |
 | 
			
		||||
            | **System** | **Option** | - | **Resource** |
 | 
			
		||||
            | <img src="https://gist.github.com/5chdn/1fce888fde1d773761f809b607757f76/raw/44c4f0fc63f1ea8e61a9513af5131ef65eaa6c75/settings.png" alt="Settings Icon by Pixel Perfect from https://www.flaticon.com/authors/pixel-perfect" style="width: 32px;"/> | Docker | - | [hub.docker.com/r/openethereum/openethereum](https://hub.docker.com/r/openethereum/openethereum) |
 | 
			
		||||
 | 
			
		||||
          draft:                true
 | 
			
		||||
          prerelease:           true
 | 
			
		||||
 | 
			
		||||
      - name:                   Upload Release Asset - Linux
 | 
			
		||||
        id:                     upload_release_asset_linux
 | 
			
		||||
        uses:                   actions/upload-release-asset@v1.0.1
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN:         ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        with:
 | 
			
		||||
          upload_url:           ${{ steps.create_release_draft.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
 | 
			
		||||
          asset_path:           ./openethereum-linux-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
          asset_name:           openethereum-linux-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
          asset_content_type:   application/zip
 | 
			
		||||
 | 
			
		||||
      - name:                   Upload Release Asset - MacOS
 | 
			
		||||
        id:                     upload_release_asset_macos
 | 
			
		||||
        uses:                   actions/upload-release-asset@v1.0.1
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN:         ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        with:
 | 
			
		||||
          upload_url:           ${{ steps.create_release_draft.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
 | 
			
		||||
          asset_path:           ./openethereum-macos-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
          asset_name:           openethereum-macos-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
          asset_content_type:   application/zip
 | 
			
		||||
 | 
			
		||||
      - name:                   Upload Release Asset - Windows
 | 
			
		||||
        id:                     upload_release_asset_windows
 | 
			
		||||
        uses:                   actions/upload-release-asset@v1
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN:         ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        with:
 | 
			
		||||
          upload_url:           ${{ steps.create_release_draft.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
 | 
			
		||||
          asset_path:           ./openethereum-windows-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
          asset_name:           openethereum-windows-${{ env.RELEASE_VERSION }}.zip
 | 
			
		||||
          asset_content_type:   application/zip
 | 
			
		||||
							
								
								
									
										86
									
								
								.github/workflows/check.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								.github/workflows/check.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,86 @@
 | 
			
		||||
name:                           Check
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  pull_request:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - master
 | 
			
		||||
      - stable
 | 
			
		||||
jobs:
 | 
			
		||||
  check:
 | 
			
		||||
    name:                       Check
 | 
			
		||||
    runs-on:                    ubuntu-20.04
 | 
			
		||||
    env:
 | 
			
		||||
      SCCACHE_CACHE_SIZE:       "1G"
 | 
			
		||||
      SCCACHE_IDLE_TIMEOUT:     0    
 | 
			
		||||
    steps:
 | 
			
		||||
      - name:                   Checkout sources
 | 
			
		||||
        uses:                   actions/checkout@master
 | 
			
		||||
        with:
 | 
			
		||||
          submodules:           true
 | 
			
		||||
      - name:                   Install stable toolchain
 | 
			
		||||
        uses:                   actions-rs/toolchain@v1
 | 
			
		||||
        with:
 | 
			
		||||
          toolchain:            stable
 | 
			
		||||
          profile:              minimal
 | 
			
		||||
          override:             true
 | 
			
		||||
      - name:                   Cache cargo registry
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 ~/.cargo/registry
 | 
			
		||||
          key:                  ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      - name:                   Cache cargo index
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 ~/.cargo/git
 | 
			
		||||
          key:                  ${{ runner.os }}-cargo-git-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      - name:                   Cache cargo build
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 target
 | 
			
		||||
          key:                  ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      # Install sccache based on https://github.com/denoland/rusty_v8/blob/master/.github/workflows/ci.yml#L69
 | 
			
		||||
      - name:                   Cache sccache
 | 
			
		||||
        uses:                   actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path:                 "/home/runner/.cache/sccache"
 | 
			
		||||
          key:                  ${{ runner.os }}-sccache-check-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
      - name:                   Install sccache for Linux
 | 
			
		||||
        shell:                  pwsh
 | 
			
		||||
        run:                    pwsh scripts/actions/install-sccache.ps1 ${{ runner.os}}
 | 
			
		||||
      - name:                   Sccache statistics
 | 
			
		||||
        run:                    sccache --show-stats
 | 
			
		||||
      - name:                   Run cargo check 1/3
 | 
			
		||||
        uses:                   actions-rs/cargo@v1
 | 
			
		||||
        with:
 | 
			
		||||
          command:              check
 | 
			
		||||
          args:                 --locked --no-default-features --verbose
 | 
			
		||||
      - name:                   Run cargo check 2/3
 | 
			
		||||
        uses:                   actions-rs/cargo@v1
 | 
			
		||||
        with:
 | 
			
		||||
          command:              check
 | 
			
		||||
          args:                 --locked --manifest-path util/io/Cargo.toml --no-default-features --verbose
 | 
			
		||||
      - name:                   Run cargo check 3/3
 | 
			
		||||
        uses:                   actions-rs/cargo@v1
 | 
			
		||||
        with:
 | 
			
		||||
          command:              check
 | 
			
		||||
          args:                 --locked --manifest-path util/io/Cargo.toml --features "mio" --verbose
 | 
			
		||||
      - name:                   Run cargo check evmbin
 | 
			
		||||
        uses:                   actions-rs/cargo@v1
 | 
			
		||||
        with:
 | 
			
		||||
          command:              check
 | 
			
		||||
          args:                 --locked -p evmbin --verbose
 | 
			
		||||
      - name:                   Run cargo check benches
 | 
			
		||||
        uses:                   actions-rs/cargo@v1
 | 
			
		||||
        with:
 | 
			
		||||
          command:              check
 | 
			
		||||
          args:                 --locked --all --benches --verbose
 | 
			
		||||
      - name:                   Run validate chainspecs
 | 
			
		||||
        run:                    ./scripts/actions/validate-chainspecs.sh
 | 
			
		||||
      - name:                   Stop sccache
 | 
			
		||||
        if:                     always()
 | 
			
		||||
        run:                    sccache --stop-server
 | 
			
		||||
        continue-on-error:      true
 | 
			
		||||
      - name:                   Prepare build directory for cache
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run:                    bash scripts/actions/clean-target.sh
 | 
			
		||||
							
								
								
									
										20
									
								
								.github/workflows/fmt.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								.github/workflows/fmt.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
			
		||||
on: [push, pull_request]
 | 
			
		||||
 | 
			
		||||
name: rustfmt
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  fmt:
 | 
			
		||||
    name: Rustfmt
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
      - uses: actions-rs/toolchain@v1
 | 
			
		||||
        with:
 | 
			
		||||
          profile: minimal
 | 
			
		||||
          toolchain: stable
 | 
			
		||||
          override: true
 | 
			
		||||
      - run: rustup component add rustfmt
 | 
			
		||||
      - uses: actions-rs/cargo@v1
 | 
			
		||||
        with:
 | 
			
		||||
          command: fmt
 | 
			
		||||
          args: --all -- --check --config merge_imports=true
 | 
			
		||||
							
								
								
									
										370
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							
							
						
						
									
										370
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							@ -1,370 +0,0 @@
 | 
			
		||||
stages:
 | 
			
		||||
  - test
 | 
			
		||||
  - build
 | 
			
		||||
  - publish
 | 
			
		||||
  - optional
 | 
			
		||||
 | 
			
		||||
image:                             ${REGISTRY}/parity-ci-linux:latest
 | 
			
		||||
 | 
			
		||||
variables:
 | 
			
		||||
  GIT_STRATEGY:                    fetch
 | 
			
		||||
  GIT_SUBMODULE_STRATEGY:          recursive
 | 
			
		||||
  CI_SERVER_NAME:                  "GitLab CI"
 | 
			
		||||
  CARGO_HOME:                      "/ci-cache/${CI_PROJECT_NAME}/cargo/${CI_JOB_NAME}"
 | 
			
		||||
  CARGO_TARGET:                    x86_64-unknown-linux-gnu
 | 
			
		||||
  REGISTRY:                        registry.parity.io/parity/infrastructure/scripts
 | 
			
		||||
 | 
			
		||||
.releaseable_branches:             # list of git refs for building GitLab artifacts (think "pre-release binaries")
 | 
			
		||||
  only:                            &releaseable_branches
 | 
			
		||||
    - stable
 | 
			
		||||
    - beta
 | 
			
		||||
    - tags
 | 
			
		||||
    - schedules
 | 
			
		||||
 | 
			
		||||
.collect_artifacts:                &collect_artifacts
 | 
			
		||||
  artifacts:
 | 
			
		||||
    name:                          "${CI_JOB_NAME}_${SCHEDULE_TAG:-${CI_COMMIT_REF_NAME}}"
 | 
			
		||||
    when:                          on_success
 | 
			
		||||
    expire_in:                     1 mos
 | 
			
		||||
    paths:
 | 
			
		||||
      - artifacts/
 | 
			
		||||
      - tools/
 | 
			
		||||
 | 
			
		||||
.docker-cache-status:              &docker-cache-status
 | 
			
		||||
  variables:
 | 
			
		||||
    CARGO_HOME:                    "/ci-cache/parity-ethereum/cargo/${CI_JOB_NAME}"
 | 
			
		||||
  dependencies:                    []
 | 
			
		||||
  before_script:
 | 
			
		||||
    - rustup show
 | 
			
		||||
    - cargo --version
 | 
			
		||||
  retry:
 | 
			
		||||
    max: 2
 | 
			
		||||
    when:
 | 
			
		||||
      - runner_system_failure
 | 
			
		||||
      - unknown_failure
 | 
			
		||||
      - api_failure
 | 
			
		||||
  tags:
 | 
			
		||||
    - linux-docker
 | 
			
		||||
 | 
			
		||||
.build-on-linux:                   &build-on-linux
 | 
			
		||||
  stage:                           build
 | 
			
		||||
  <<:                              *docker-cache-status
 | 
			
		||||
  <<:                              *collect_artifacts
 | 
			
		||||
  script:
 | 
			
		||||
    - scripts/gitlab/build-linux.sh
 | 
			
		||||
  after_script:
 | 
			
		||||
    - mkdir -p tools
 | 
			
		||||
    - cp -r scripts/docker/hub/* ./tools
 | 
			
		||||
    - cp scripts/gitlab/publish-snap.sh ./tools
 | 
			
		||||
    - cp scripts/gitlab/publish-onchain.sh ./tools
 | 
			
		||||
    - cp scripts/gitlab/safe-curl.sh ./tools
 | 
			
		||||
    - echo v"$(sed -r -n '1,/^version/s/^version\s*=\s*"([^"]+)".*$/\1/p' Cargo.toml)" |
 | 
			
		||||
      tee ./tools/VERSION
 | 
			
		||||
    - echo "$(sed -r -n '1,/^track/s/^track\s*=\s*"([^"]+)".*$/\1/p' ./util/version/Cargo.toml)" |
 | 
			
		||||
      tee ./tools/TRACK
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
cargo-check 0 3:
 | 
			
		||||
  stage:                           test
 | 
			
		||||
  <<:                              *docker-cache-status
 | 
			
		||||
  script:
 | 
			
		||||
    - time cargo check --target $CARGO_TARGET --locked --no-default-features --verbose --color=always
 | 
			
		||||
    - sccache --show-stats
 | 
			
		||||
 | 
			
		||||
cargo-check 1 3:
 | 
			
		||||
  stage:                           test
 | 
			
		||||
  <<:                              *docker-cache-status
 | 
			
		||||
  script:
 | 
			
		||||
    - time cargo check --target $CARGO_TARGET --locked --manifest-path util/io/Cargo.toml --no-default-features --verbose --color=always
 | 
			
		||||
    - sccache --show-stats
 | 
			
		||||
 | 
			
		||||
cargo-check 2 3:
 | 
			
		||||
  stage:                           test
 | 
			
		||||
  <<:                              *docker-cache-status
 | 
			
		||||
  script:
 | 
			
		||||
    - time cargo check --target $CARGO_TARGET --locked --manifest-path util/io/Cargo.toml --features "mio" --verbose --color=always
 | 
			
		||||
    - sccache --show-stats
 | 
			
		||||
 | 
			
		||||
cargo-check-evmbin:
 | 
			
		||||
  stage:                           test
 | 
			
		||||
  <<:                              *docker-cache-status
 | 
			
		||||
  script:
 | 
			
		||||
    - time cargo check -p evmbin --target $CARGO_TARGET --locked --verbose --color=always
 | 
			
		||||
    - sccache --show-stats
 | 
			
		||||
 | 
			
		||||
cargo-check-benches:
 | 
			
		||||
  stage:                           test
 | 
			
		||||
  <<:                              *docker-cache-status
 | 
			
		||||
  script:
 | 
			
		||||
    - time cargo check --all --benches --target $CARGO_TARGET --locked --verbose --color=always
 | 
			
		||||
    - sccache --show-stats
 | 
			
		||||
 | 
			
		||||
cargo-audit:
 | 
			
		||||
  stage:                           test
 | 
			
		||||
  <<:                              *docker-cache-status
 | 
			
		||||
  script:
 | 
			
		||||
    - cargo audit
 | 
			
		||||
  allow_failure:                   true # failed cargo audit shouldn't prevent a PR from being merged
 | 
			
		||||
 | 
			
		||||
validate-chainspecs:
 | 
			
		||||
  stage:                           test
 | 
			
		||||
  <<:                              *docker-cache-status
 | 
			
		||||
  script:
 | 
			
		||||
    - ./scripts/gitlab/validate-chainspecs.sh
 | 
			
		||||
 | 
			
		||||
test-cpp:
 | 
			
		||||
  stage:                           build
 | 
			
		||||
  <<:                              *docker-cache-status
 | 
			
		||||
  script:
 | 
			
		||||
    - ./scripts/gitlab/test-cpp.sh
 | 
			
		||||
 | 
			
		||||
test-linux:
 | 
			
		||||
  stage:                           build
 | 
			
		||||
  <<:                              *docker-cache-status
 | 
			
		||||
  script:
 | 
			
		||||
    - ./scripts/gitlab/test-linux.sh stable
 | 
			
		||||
 | 
			
		||||
test-linux-beta:
 | 
			
		||||
  stage:                           build
 | 
			
		||||
  only:                            *releaseable_branches
 | 
			
		||||
  <<:                              *docker-cache-status
 | 
			
		||||
  script:
 | 
			
		||||
    - ./scripts/gitlab/test-linux.sh beta
 | 
			
		||||
 | 
			
		||||
test-linux-nightly:
 | 
			
		||||
  stage:                           build
 | 
			
		||||
  only:                            *releaseable_branches
 | 
			
		||||
  <<:                              *docker-cache-status
 | 
			
		||||
  script:
 | 
			
		||||
    - ./scripts/gitlab/test-linux.sh nightly
 | 
			
		||||
  allow_failure:                   true
 | 
			
		||||
 | 
			
		||||
build-android:
 | 
			
		||||
  <<:                              *build-on-linux
 | 
			
		||||
  image:                           ${REGISTRY}/parity-ci-android:stretch
 | 
			
		||||
  variables:
 | 
			
		||||
    CARGO_TARGET:                  armv7-linux-androideabi
 | 
			
		||||
 | 
			
		||||
build-linux:
 | 
			
		||||
  <<:                              *build-on-linux
 | 
			
		||||
  only:                            *releaseable_branches
 | 
			
		||||
 | 
			
		||||
build-linux-i386:
 | 
			
		||||
  <<:                              *build-on-linux
 | 
			
		||||
  only:                            *releaseable_branches
 | 
			
		||||
  image:                           ${REGISTRY}/parity-ci-i386:latest
 | 
			
		||||
  variables:
 | 
			
		||||
    CARGO_TARGET:                  i686-unknown-linux-gnu
 | 
			
		||||
 | 
			
		||||
build-linux-arm64:
 | 
			
		||||
  <<:                              *build-on-linux
 | 
			
		||||
  only:                            *releaseable_branches
 | 
			
		||||
  image:                           ${REGISTRY}/parity-ci-arm64:latest
 | 
			
		||||
  variables:
 | 
			
		||||
    CARGO_TARGET:                  aarch64-unknown-linux-gnu
 | 
			
		||||
 | 
			
		||||
build-linux-armhf:
 | 
			
		||||
  <<:                              *build-on-linux
 | 
			
		||||
  only:                            *releaseable_branches
 | 
			
		||||
  image:                           ${REGISTRY}/parity-ci-armhf:latest
 | 
			
		||||
  variables:
 | 
			
		||||
    CARGO_TARGET:                  armv7-unknown-linux-gnueabihf
 | 
			
		||||
 | 
			
		||||
build-darwin:
 | 
			
		||||
  stage:                           build
 | 
			
		||||
  <<:                              *collect_artifacts
 | 
			
		||||
  only:                            *releaseable_branches
 | 
			
		||||
  variables:
 | 
			
		||||
    CARGO_TARGET:                  x86_64-apple-darwin
 | 
			
		||||
    CARGO_HOME:                    "${CI_PROJECT_DIR}/.cargo"
 | 
			
		||||
    CC:                            gcc
 | 
			
		||||
    CXX:                           g++
 | 
			
		||||
  script:
 | 
			
		||||
    - scripts/gitlab/build-linux.sh
 | 
			
		||||
  tags:
 | 
			
		||||
    - rust-osx
 | 
			
		||||
 | 
			
		||||
build-windows:
 | 
			
		||||
  stage:                           build
 | 
			
		||||
  <<:                              *collect_artifacts
 | 
			
		||||
  only:                            *releaseable_branches
 | 
			
		||||
  variables:
 | 
			
		||||
    CARGO_TARGET:                  x86_64-pc-windows-msvc
 | 
			
		||||
    CARGO_HOME:                    "C:/ci-cache/parity-ethereum/cargo/$CI_JOB_NAME"
 | 
			
		||||
    GIT_SUBMODULE_STRATEGY:        none
 | 
			
		||||
  script:
 | 
			
		||||
    - sh scripts/gitlab/build-windows.sh
 | 
			
		||||
  tags:
 | 
			
		||||
    - rust-windows
 | 
			
		||||
 | 
			
		||||
publish-docker:
 | 
			
		||||
  stage:                           publish
 | 
			
		||||
  only:                            *releaseable_branches
 | 
			
		||||
  except:
 | 
			
		||||
    - nightly
 | 
			
		||||
  when:                            manual
 | 
			
		||||
  dependencies:
 | 
			
		||||
    - build-linux
 | 
			
		||||
  environment:
 | 
			
		||||
    name: parity-build
 | 
			
		||||
  cache:                           {}
 | 
			
		||||
  image:                           docker:stable
 | 
			
		||||
  services:
 | 
			
		||||
    - docker:dind
 | 
			
		||||
  variables:
 | 
			
		||||
    GIT_STRATEGY:                  none
 | 
			
		||||
    DOCKER_HOST:                   tcp://localhost:2375
 | 
			
		||||
    DOCKER_DRIVER:                 overlay2
 | 
			
		||||
    GIT_STRATEGY:                  none
 | 
			
		||||
    # DOCKERFILE:                  tools/Dockerfile
 | 
			
		||||
    # CONTAINER_IMAGE:             parity/parity
 | 
			
		||||
  script:
 | 
			
		||||
    - ./tools/publish-docker.sh
 | 
			
		||||
  tags:
 | 
			
		||||
    - kubernetes-parity-build
 | 
			
		||||
 | 
			
		||||
publish-snap-nightly:              &publish-snap
 | 
			
		||||
  stage:                           publish
 | 
			
		||||
  only:
 | 
			
		||||
    - nightly
 | 
			
		||||
  image:                           snapcore/snapcraft
 | 
			
		||||
  variables:
 | 
			
		||||
    GIT_STRATEGY:                  none
 | 
			
		||||
    BUILD_ARCH:                    amd64
 | 
			
		||||
  cache:                           {}
 | 
			
		||||
  dependencies:
 | 
			
		||||
    - build-linux
 | 
			
		||||
  tags:
 | 
			
		||||
    - linux-docker
 | 
			
		||||
  script:
 | 
			
		||||
    - ./tools/publish-snap.sh
 | 
			
		||||
 | 
			
		||||
publish-snap-manually:
 | 
			
		||||
  <<:                              *publish-snap
 | 
			
		||||
  only:                            *releaseable_branches
 | 
			
		||||
  when:                            manual
 | 
			
		||||
 | 
			
		||||
publish-snap-i386-nightly:         &publish-snap-i386
 | 
			
		||||
  <<:                              *publish-snap
 | 
			
		||||
  variables:
 | 
			
		||||
    BUILD_ARCH:                    i386
 | 
			
		||||
    CARGO_TARGET:                  i686-unknown-linux-gnu
 | 
			
		||||
  dependencies:
 | 
			
		||||
    - build-linux-i386
 | 
			
		||||
 | 
			
		||||
publish-snap-i386-manually:
 | 
			
		||||
  <<:                              *publish-snap-i386
 | 
			
		||||
  only:                            *releaseable_branches
 | 
			
		||||
  when:                            manual
 | 
			
		||||
 | 
			
		||||
publish-snap-arm64-nightly:        &publish-snap-arm64
 | 
			
		||||
  <<:                              *publish-snap
 | 
			
		||||
  variables:
 | 
			
		||||
    BUILD_ARCH:                    arm64
 | 
			
		||||
    CARGO_TARGET:                  aarch64-unknown-linux-gnu
 | 
			
		||||
  dependencies:
 | 
			
		||||
    - build-linux-arm64
 | 
			
		||||
 | 
			
		||||
publish-snap-arm64-manually:
 | 
			
		||||
  <<:                              *publish-snap-arm64
 | 
			
		||||
  only:                            *releaseable_branches
 | 
			
		||||
  when:                            manual
 | 
			
		||||
 | 
			
		||||
publish-snap-armhf-nightly:        &publish-snap-armhf
 | 
			
		||||
  <<:                              *publish-snap
 | 
			
		||||
  variables:
 | 
			
		||||
    BUILD_ARCH:                    armhf
 | 
			
		||||
    CARGO_TARGET:                  armv7-unknown-linux-gnueabihf
 | 
			
		||||
  dependencies:
 | 
			
		||||
    - build-linux-armhf
 | 
			
		||||
 | 
			
		||||
publish-snap-armhf-manually:
 | 
			
		||||
  <<:                              *publish-snap-armhf
 | 
			
		||||
  only:                            *releaseable_branches
 | 
			
		||||
  when:                            manual
 | 
			
		||||
 | 
			
		||||
publish-onchain-nightly:           &publish-onchain
 | 
			
		||||
  stage:                           publish
 | 
			
		||||
  only:
 | 
			
		||||
    - nightly
 | 
			
		||||
  cache:                           {}
 | 
			
		||||
  variables:
 | 
			
		||||
    GIT_STRATEGY:                  none
 | 
			
		||||
  dependencies:
 | 
			
		||||
    - build-linux
 | 
			
		||||
    - build-darwin
 | 
			
		||||
    - build-windows
 | 
			
		||||
  script:
 | 
			
		||||
    - ./tools/publish-onchain.sh
 | 
			
		||||
  tags:
 | 
			
		||||
    - linux-docker
 | 
			
		||||
 | 
			
		||||
publish-onchain-manually:
 | 
			
		||||
  <<:                              *publish-onchain
 | 
			
		||||
  only:                            *releaseable_branches
 | 
			
		||||
  when:                            manual
 | 
			
		||||
 | 
			
		||||
publish-release-awss3-nightly:     &publish-release-awss3
 | 
			
		||||
  image:                           ${REGISTRY}/awscli:latest
 | 
			
		||||
  stage:                           publish
 | 
			
		||||
  only:
 | 
			
		||||
    - nightly
 | 
			
		||||
  variables:
 | 
			
		||||
    GIT_STRATEGY:                  none
 | 
			
		||||
  cache:                           {}
 | 
			
		||||
  dependencies:
 | 
			
		||||
    - build-linux
 | 
			
		||||
    - build-darwin
 | 
			
		||||
    - build-windows
 | 
			
		||||
  script:
 | 
			
		||||
    - echo "__________Push binaries to AWS S3____________"
 | 
			
		||||
    - case "${SCHEDULE_TAG:-${CI_COMMIT_REF_NAME}}" in
 | 
			
		||||
       (beta|stable|nightly)
 | 
			
		||||
         export BUCKET=releases.parity.io/ethereum;
 | 
			
		||||
         ;;
 | 
			
		||||
       (*)
 | 
			
		||||
         export BUCKET=builds-parity;
 | 
			
		||||
         ;;
 | 
			
		||||
     esac
 | 
			
		||||
    - aws s3 sync ./artifacts s3://${BUCKET}/${SCHEDULE_TAG:-${CI_COMMIT_REF_NAME}}/
 | 
			
		||||
    - echo "__________Read from S3____________"
 | 
			
		||||
    - aws s3 ls s3://${BUCKET}/${SCHEDULE_TAG:-${CI_COMMIT_REF_NAME}} --recursive --human-readable --summarize
 | 
			
		||||
  tags:
 | 
			
		||||
    - linux-docker
 | 
			
		||||
 | 
			
		||||
publish-release-awss3-manually:
 | 
			
		||||
  <<:                              *publish-release-awss3
 | 
			
		||||
  only:                            *releaseable_branches
 | 
			
		||||
  when:                            manual
 | 
			
		||||
 | 
			
		||||
publish-docs:
 | 
			
		||||
  stage:                           publish
 | 
			
		||||
  image:                           ${REGISTRY}/parity-ci-docs:latest
 | 
			
		||||
  only:
 | 
			
		||||
    - tags
 | 
			
		||||
  except:
 | 
			
		||||
    - nightly
 | 
			
		||||
  when:                            manual
 | 
			
		||||
  cache:                           {}
 | 
			
		||||
  dependencies:                    []
 | 
			
		||||
  script:
 | 
			
		||||
    - scripts/gitlab/publish-docs.sh
 | 
			
		||||
  tags:
 | 
			
		||||
    - linux-docker
 | 
			
		||||
  allow_failure:                   true
 | 
			
		||||
 | 
			
		||||
publish-av-whitelist:
 | 
			
		||||
  stage:                          publish
 | 
			
		||||
  variables:
 | 
			
		||||
    GIT_STRATEGY:                  none
 | 
			
		||||
  only:                           *releaseable_branches
 | 
			
		||||
  except:
 | 
			
		||||
    - nightly
 | 
			
		||||
  when:                           manual
 | 
			
		||||
  cache:                          {}
 | 
			
		||||
  dependencies:
 | 
			
		||||
    - build-windows
 | 
			
		||||
  script:
 | 
			
		||||
    - scripts/gitlab/publish-av-whitelists.sh
 | 
			
		||||
  tags:
 | 
			
		||||
    - linux-docker
 | 
			
		||||
							
								
								
									
										22
									
								
								scripts/actions/build-linux.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								scripts/actions/build-linux.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,22 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -e # fail on any error
 | 
			
		||||
set -u # treat unset variables as error
 | 
			
		||||
#strip ON
 | 
			
		||||
export RUSTFLAGS=" -Clink-arg=-s -Ctarget-feature=+aes,+sse2,+ssse3"
 | 
			
		||||
 | 
			
		||||
echo "_____ Build OpenEthereum and tools _____"
 | 
			
		||||
 | 
			
		||||
time cargo build --verbose --color=always --release --features final
 | 
			
		||||
time cargo build --verbose --color=always --release -p evmbin
 | 
			
		||||
time cargo build --verbose --color=always --release -p ethstore-cli
 | 
			
		||||
time cargo build --verbose --color=always --release -p ethkey-cli
 | 
			
		||||
 | 
			
		||||
echo "_____ Post-processing binaries _____"
 | 
			
		||||
rm -rf artifacts/*
 | 
			
		||||
mkdir -p artifacts/
 | 
			
		||||
 | 
			
		||||
cp -v target/release/parity artifacts/parity
 | 
			
		||||
cp -v target/release/parity-evm artifacts/parity-evm
 | 
			
		||||
cp -v target/release/ethstore artifacts/ethstore
 | 
			
		||||
cp -v target/release/ethkey artifacts/ethkey
 | 
			
		||||
							
								
								
									
										21
									
								
								scripts/actions/build-windows.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										21
									
								
								scripts/actions/build-windows.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,21 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
set -e # fail on any error
 | 
			
		||||
set -u # treat unset variables as error
 | 
			
		||||
# NOTE: Enables the aes-ni instructions for RustCrypto dependency.
 | 
			
		||||
# If you change this please remember to also update .cargo/config
 | 
			
		||||
export RUSTFLAGS=" -Ctarget-feature=+aes,+sse2,+ssse3 -Ctarget-feature=+crt-static  -Clink-arg=-s"
 | 
			
		||||
 | 
			
		||||
echo "_____ Build Parity and tools _____"
 | 
			
		||||
time cargo build --verbose --release --features final
 | 
			
		||||
time cargo build --verbose --release -p evmbin
 | 
			
		||||
time cargo build --verbose --release -p ethstore-cli
 | 
			
		||||
time cargo build --verbose --release -p ethkey-cli
 | 
			
		||||
 | 
			
		||||
echo "_____ Post-processing binaries _____"
 | 
			
		||||
rm -rf artifacts
 | 
			
		||||
mkdir -p artifacts
 | 
			
		||||
 | 
			
		||||
cp --verbose target/release/parity.exe artifacts/parity.exe
 | 
			
		||||
cp --verbose target/release/parity-evm.exe artifacts/parity-evm.exe
 | 
			
		||||
cp --verbose target/release/ethstore.exe artifacts/ethstore.exe
 | 
			
		||||
cp --verbose target/release/ethkey.exe artifacts/ethkey.exe
 | 
			
		||||
							
								
								
									
										8
									
								
								scripts/actions/clean-target.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										8
									
								
								scripts/actions/clean-target.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,8 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -e # fail on any error
 | 
			
		||||
set -u # treat unset variables as error
 | 
			
		||||
 | 
			
		||||
find ./target/release -maxdepth 1 -type f -delete;
 | 
			
		||||
rm -fr ./target/release/{deps,.fingerprint}/*{parity,ethcore,ethkey,ethstore,parity-evm}*;
 | 
			
		||||
rm -f  ./target/.rustc_info.json;
 | 
			
		||||
							
								
								
									
										19
									
								
								scripts/actions/install-sccache.ps1
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								scripts/actions/install-sccache.ps1
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,19 @@
 | 
			
		||||
#!/usr/bin/env pwsh
 | 
			
		||||
$os=$args[0]
 | 
			
		||||
$version="0.2.12"
 | 
			
		||||
echo "Current OS:" $os
 | 
			
		||||
switch ($os){
 | 
			
		||||
   "macOS" {$platform = "x86_64-apple-darwin"}
 | 
			
		||||
   "Linux" {$platform = "x86_64-unknown-linux-musl"}
 | 
			
		||||
   "Windows"  {$platform ="x86_64-pc-windows-msvc"}
 | 
			
		||||
}
 | 
			
		||||
echo "Target arch: " $platform
 | 
			
		||||
$basename = "sccache-$version-$platform"
 | 
			
		||||
$url = "https://github.com/mozilla/sccache/releases/download/"+"$version/$basename.tar.gz"
 | 
			
		||||
echo "Download sccache from "+$url
 | 
			
		||||
curl -LO $url
 | 
			
		||||
tar -xzvf "$basename.tar.gz"
 | 
			
		||||
ls $basename/
 | 
			
		||||
. $basename/sccache --start-server
 | 
			
		||||
echo "::add-path::$(pwd)/$basename"
 | 
			
		||||
echo "::set-env name=RUSTC_WRAPPER::sccache"
 | 
			
		||||
@ -1,63 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -e # fail on any error
 | 
			
		||||
set -u # treat unset variables as error
 | 
			
		||||
 | 
			
		||||
export CC="sccache "$CC
 | 
			
		||||
export CXX="sccache "$CXX
 | 
			
		||||
echo "__________Show ENVIROMENT__________"
 | 
			
		||||
echo "CI_SERVER_NAME:   " $CI_SERVER_NAME
 | 
			
		||||
echo "CARGO_HOME:       " $CARGO_HOME
 | 
			
		||||
echo "CARGO_TARGET:     " $CARGO_TARGET
 | 
			
		||||
echo "CC:               " $CC
 | 
			
		||||
echo "CXX:              " $CXX
 | 
			
		||||
#strip ON
 | 
			
		||||
export RUSTFLAGS=" -C link-arg=-s"
 | 
			
		||||
 | 
			
		||||
echo "_____ Building target: "$CARGO_TARGET" _____"
 | 
			
		||||
if [ "${CARGO_TARGET}" = "armv7-linux-androideabi" ]
 | 
			
		||||
then
 | 
			
		||||
  time cargo build --target $CARGO_TARGET --verbose --color=always --release -p parity-clib --features final
 | 
			
		||||
else
 | 
			
		||||
  if [ "${CARGO_TARGET}" = "x86_64-unknown-linux-gnu" ] || [ "${CARGO_TARGET}" = "x86_64-apple-darwin" ]
 | 
			
		||||
  then
 | 
			
		||||
    # NOTE: Enables the aes-ni instructions for RustCrypto dependency.
 | 
			
		||||
    # If you change this please remember to also update .cargo/config
 | 
			
		||||
    export RUSTFLAGS="$RUSTFLAGS -Ctarget-feature=+aes,+sse2,+ssse3"
 | 
			
		||||
  fi
 | 
			
		||||
  time cargo build --target $CARGO_TARGET --verbose --color=always --release --features final
 | 
			
		||||
  time cargo build --target $CARGO_TARGET --verbose --color=always --release -p evmbin
 | 
			
		||||
  time cargo build --target $CARGO_TARGET --verbose --color=always --release -p ethstore-cli
 | 
			
		||||
  time cargo build --target $CARGO_TARGET --verbose --color=always --release -p ethkey-cli
 | 
			
		||||
  time cargo build --target $CARGO_TARGET --verbose --color=always --release -p whisper-cli
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo "_____ Post-processing binaries _____"
 | 
			
		||||
rm -rf artifacts/*
 | 
			
		||||
mkdir -p artifacts/$CARGO_TARGET
 | 
			
		||||
cd artifacts/$CARGO_TARGET
 | 
			
		||||
 | 
			
		||||
if [ "${CARGO_TARGET}" = "armv7-linux-androideabi" ]
 | 
			
		||||
then
 | 
			
		||||
 cp -v ../../target/$CARGO_TARGET/release/libparity.so ./libparity.so
 | 
			
		||||
else
 | 
			
		||||
 cp -v ../../target/$CARGO_TARGET/release/parity ./parity
 | 
			
		||||
 cp -v ../../target/$CARGO_TARGET/release/parity-evm ./parity-evm
 | 
			
		||||
 cp -v ../../target/$CARGO_TARGET/release/ethstore ./ethstore
 | 
			
		||||
 cp -v ../../target/$CARGO_TARGET/release/ethkey ./ethkey
 | 
			
		||||
 cp -v ../../target/$CARGO_TARGET/release/whisper ./whisper
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo "_____ Calculating checksums _____"
 | 
			
		||||
for binary in $(ls)
 | 
			
		||||
do
 | 
			
		||||
  rhash --sha256 $binary -o $binary.sha256 #do we still need this hash (SHA2)?
 | 
			
		||||
  if [[ $CARGO_TARGET == *"x86_64"* ]];
 | 
			
		||||
  then
 | 
			
		||||
      ./parity tools hash $binary > $binary.sha3
 | 
			
		||||
  else
 | 
			
		||||
      echo ">[WARN] ${binary} cannot be hashed with cross-compiled binary (keccak256)"
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
#show sccache statistics
 | 
			
		||||
sccache --show-stats
 | 
			
		||||
@ -1,51 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
set -e # fail on any error
 | 
			
		||||
set -u # treat unset variables as error
 | 
			
		||||
 | 
			
		||||
set INCLUDE="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;C:\vs2015\VC\include;C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt"
 | 
			
		||||
set LIB="C:\vs2015\VC\lib;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x64"
 | 
			
		||||
sccache -s
 | 
			
		||||
 | 
			
		||||
echo "__________Show ENVIROMENT__________"
 | 
			
		||||
echo "CI_SERVER_NAME:   " $CI_SERVER_NAME
 | 
			
		||||
echo "CARGO_HOME:       " $CARGO_HOME
 | 
			
		||||
echo "CARGO_TARGET:     " $CARGO_TARGET
 | 
			
		||||
echo "RUSTC_WRAPPER:    " $RUSTC_WRAPPER
 | 
			
		||||
echo "SCCACHE_DIR:      " $SCCACHE_DIR
 | 
			
		||||
 | 
			
		||||
echo "_____ Building target: "$CARGO_TARGET" _____"
 | 
			
		||||
time cargo build --target $CARGO_TARGET --verbose --release --features final
 | 
			
		||||
time cargo build --target $CARGO_TARGET --verbose --release -p evmbin
 | 
			
		||||
time cargo build --target $CARGO_TARGET --verbose --release -p ethstore-cli
 | 
			
		||||
time cargo build --target $CARGO_TARGET --verbose --release -p ethkey-cli
 | 
			
		||||
time cargo build --target $CARGO_TARGET --verbose --release -p whisper-cli
 | 
			
		||||
 | 
			
		||||
echo "__________Sign binaries__________"
 | 
			
		||||
scripts/gitlab/sign-win.cmd $keyfile $certpass target/$CARGO_TARGET/release/parity.exe
 | 
			
		||||
scripts/gitlab/sign-win.cmd $keyfile $certpass target/$CARGO_TARGET/release/parity-evm.exe
 | 
			
		||||
scripts/gitlab/sign-win.cmd $keyfile $certpass target/$CARGO_TARGET/release/ethstore.exe
 | 
			
		||||
scripts/gitlab/sign-win.cmd $keyfile $certpass target/$CARGO_TARGET/release/ethkey.exe
 | 
			
		||||
scripts/gitlab/sign-win.cmd $keyfile $certpass target/$CARGO_TARGET/release/whisper.exe
 | 
			
		||||
 | 
			
		||||
echo "_____ Post-processing binaries _____"
 | 
			
		||||
rm -rf artifacts
 | 
			
		||||
mkdir -p artifacts
 | 
			
		||||
cd artifacts
 | 
			
		||||
mkdir -p $CARGO_TARGET
 | 
			
		||||
cd $CARGO_TARGET
 | 
			
		||||
cp --verbose ../../target/$CARGO_TARGET/release/parity.exe ./parity.exe
 | 
			
		||||
cp --verbose ../../target/$CARGO_TARGET/release/parity-evm.exe ./parity-evm.exe
 | 
			
		||||
cp --verbose ../../target/$CARGO_TARGET/release/ethstore.exe ./ethstore.exe
 | 
			
		||||
cp --verbose ../../target/$CARGO_TARGET/release/ethkey.exe ./ethkey.exe
 | 
			
		||||
cp --verbose ../../target/$CARGO_TARGET/release/whisper.exe ./whisper.exe
 | 
			
		||||
 | 
			
		||||
echo "_____ Calculating checksums _____"
 | 
			
		||||
for binary in $(ls)
 | 
			
		||||
do
 | 
			
		||||
  rhash --sha256 $binary -o $binary.sha256
 | 
			
		||||
  ./parity.exe tools hash $binary > $binary.sha3
 | 
			
		||||
done
 | 
			
		||||
cp parity.exe.sha256 parity.sha256
 | 
			
		||||
cp parity.exe.sha3 parity.sha3
 | 
			
		||||
 | 
			
		||||
sccache -s
 | 
			
		||||
@ -1,25 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
target_filename="parity-${CI_COMMIT_TAG:-${CI_COMMIT_REF_NAME}}.exe"
 | 
			
		||||
apt -y update
 | 
			
		||||
apt -y install ftp
 | 
			
		||||
 | 
			
		||||
echo "__________Publish Windows binaries to Avast Whitelisting program__________"
 | 
			
		||||
 | 
			
		||||
ftp -pinv whitelisting.avast.com <<EOF
 | 
			
		||||
quote USER ftp_parityio
 | 
			
		||||
quote PASS $avast_ftp_password
 | 
			
		||||
cd /share
 | 
			
		||||
put ./artifacts/x86_64-pc-windows-msvc/parity.exe $target_filename
 | 
			
		||||
bye
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
echo "__________Publish Windows binaries to Kaspersky Whitelisting program__________"
 | 
			
		||||
 | 
			
		||||
ftp -pinv whitelist1.kaspersky-labs.com <<EOF
 | 
			
		||||
quote USER wl-ParityTech
 | 
			
		||||
quote PASS $kaspersky_ftp_password
 | 
			
		||||
put ./artifacts/x86_64-pc-windows-msvc/parity.exe $target_filename
 | 
			
		||||
bye
 | 
			
		||||
EOF
 | 
			
		||||
@ -1,77 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -e # fail on any error
 | 
			
		||||
set -u # treat unset variables as error
 | 
			
		||||
 | 
			
		||||
clone_repos() {
 | 
			
		||||
    echo "__________Clone repos__________"
 | 
			
		||||
    git clone https://github.com/parity-js/jsonrpc.git jsonrpc
 | 
			
		||||
    git clone https://github.com/paritytech/wiki.git wiki
 | 
			
		||||
    git clone https://github.com/paritytech/parity-config-generator
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
build_docs() {
 | 
			
		||||
    echo "__________Build docs__________"
 | 
			
		||||
    npm install
 | 
			
		||||
    npm run build:markdown
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
build_config() {
 | 
			
		||||
    echo "_______Build config docs______"
 | 
			
		||||
    yarn install
 | 
			
		||||
    AUTOGENSCRIPT=1 yarn generate-docs
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
update_wiki_docs() {
 | 
			
		||||
    echo "__________Update WIKI docs__________"
 | 
			
		||||
    for file in $(ls jsonrpc/docs); do
 | 
			
		||||
        module_name=${file:0:-3}
 | 
			
		||||
        mv jsonrpc/docs/$file wiki/JSONRPC-$module_name-module.md
 | 
			
		||||
    done
 | 
			
		||||
    mv parity-config-generator/docs/config.md wiki/Configuring-Parity-Ethereum.md
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
setup_git() {
 | 
			
		||||
    echo "__________Set github__________"
 | 
			
		||||
    git config --global user.email "devops-team@parity.io"
 | 
			
		||||
    git config --global user.name "Devops Team Parity"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
set_remote_wiki() {
 | 
			
		||||
    git config remote.origin.url "https://${GITHUB_TOKEN}@github.com/paritytech/wiki.git"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
commit_files() {
 | 
			
		||||
    echo "__________Commit files__________"
 | 
			
		||||
    git checkout -b rpcdoc-update-${SCHEDULE_TAG:-${CI_COMMIT_REF_NAME}}
 | 
			
		||||
    git add .
 | 
			
		||||
    git commit -m "Update docs to ${SCHEDULE_TAG:-${CI_COMMIT_REF_NAME}}"
 | 
			
		||||
    git tag -a -f "${SCHEDULE_TAG:-${CI_COMMIT_REF_NAME}}" -m "Update RPC and config docs to ${SCHEDULE_TAG:-${CI_COMMIT_REF_NAME}}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
upload_files() {
 | 
			
		||||
    echo "__________Upload files__________"
 | 
			
		||||
    # this version of git (2.7.4) will dump the token on failure
 | 
			
		||||
    git push -q origin HEAD 2>&1 \
 | 
			
		||||
      | sed -r "s|(${GITHUB_USER}):[a-f0-9]+@|\1:REDACTED@|g"
 | 
			
		||||
    git push -q -f --tags 2>&1 \
 | 
			
		||||
      | sed -r "s|(${GITHUB_USER}):[a-f0-9]+@|\1:REDACTED@|g"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
RPC_TRAITS_DIR="rpc/src/v1/traits"
 | 
			
		||||
 | 
			
		||||
setup_git
 | 
			
		||||
clone_repos
 | 
			
		||||
mkdir -p "jsonrpc/.parity/$RPC_TRAITS_DIR"
 | 
			
		||||
cp $RPC_TRAITS_DIR/*.rs "jsonrpc/.parity/$RPC_TRAITS_DIR"
 | 
			
		||||
cd jsonrpc
 | 
			
		||||
build_docs
 | 
			
		||||
cd ..
 | 
			
		||||
cd parity-config-generator
 | 
			
		||||
build_config
 | 
			
		||||
cd ..
 | 
			
		||||
update_wiki_docs
 | 
			
		||||
cd wiki
 | 
			
		||||
set_remote_wiki
 | 
			
		||||
commit_files
 | 
			
		||||
upload_files
 | 
			
		||||
@ -1,33 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -e # fail on any error
 | 
			
		||||
set -u # treat unset variables as error
 | 
			
		||||
 | 
			
		||||
echo "__________Register Release__________"
 | 
			
		||||
DATA="secret=$RELEASES_SECRET"
 | 
			
		||||
 | 
			
		||||
echo "Pushing release to Mainnet"
 | 
			
		||||
./tools/safe-curl.sh $DATA "https://update.parity.io/push-release/${SCHEDULE_TAG:-${CI_COMMIT_REF_NAME}}/$CI_COMMIT_SHA"
 | 
			
		||||
 | 
			
		||||
cd artifacts
 | 
			
		||||
ls -l | sort -k9
 | 
			
		||||
filetest=( * )
 | 
			
		||||
echo ${filetest[*]}
 | 
			
		||||
for DIR in "${filetest[@]}";
 | 
			
		||||
do
 | 
			
		||||
  cd $DIR
 | 
			
		||||
  if [[ $DIR =~ "windows" ]];
 | 
			
		||||
    then
 | 
			
		||||
      WIN=".exe";
 | 
			
		||||
    else
 | 
			
		||||
      WIN="";
 | 
			
		||||
  fi
 | 
			
		||||
  sha3=$(cat parity.sha3 | awk '{print $1}')
 | 
			
		||||
  case $DIR in
 | 
			
		||||
    x86_64* )
 | 
			
		||||
      DATA="commit=$CI_COMMIT_SHA&sha3=$sha3&filename=parity$WIN&secret=$RELEASES_SECRET"
 | 
			
		||||
      ../../tools/safe-curl.sh $DATA "https://update.parity.io/push-build/${SCHEDULE_TAG:-${CI_COMMIT_REF_NAME}}/$DIR"
 | 
			
		||||
      ;;
 | 
			
		||||
  esac
 | 
			
		||||
  cd ..
 | 
			
		||||
done
 | 
			
		||||
@ -1,46 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -e # fail on any error
 | 
			
		||||
set -u # treat unset variables as error
 | 
			
		||||
 | 
			
		||||
# prepare variables
 | 
			
		||||
TRACK=$(cat ./tools/TRACK)
 | 
			
		||||
echo "Track is: ${TRACK}"
 | 
			
		||||
VERSION=$(cat ./tools/VERSION)
 | 
			
		||||
SNAP_PACKAGE="parity_"$VERSION"_"$BUILD_ARCH".snap"
 | 
			
		||||
# Choose snap release channel based on parity ethereum version track
 | 
			
		||||
case ${TRACK} in
 | 
			
		||||
  nightly) export GRADE="devel" CHANNEL="edge";;
 | 
			
		||||
  beta) export GRADE="stable" CHANNEL="beta";;
 | 
			
		||||
  stable) export GRADE="stable" CHANNEL="stable";;
 | 
			
		||||
  *) echo "No release" && exit 0;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
echo "__________Create snap package__________"
 | 
			
		||||
echo "Release channel :" $GRADE " Branch/tag: " $CI_COMMIT_REF_NAME "Track: " ${TRACK}
 | 
			
		||||
echo $VERSION:$GRADE:$BUILD_ARCH:$CARGO_TARGET
 | 
			
		||||
 | 
			
		||||
sed -e 's/$VERSION/'"$VERSION"'/g' \
 | 
			
		||||
    -e 's/$GRADE/'"$GRADE"'/g' \
 | 
			
		||||
    -e 's/$BUILD_ARCH/'"$BUILD_ARCH"'/g' \
 | 
			
		||||
    -e 's/$CARGO_TARGET/'"$CARGO_TARGET"'/g' \
 | 
			
		||||
    scripts/snap/snapcraft.template.yaml > snapcraft.yaml
 | 
			
		||||
 | 
			
		||||
apt update
 | 
			
		||||
apt install -y --no-install-recommends rhash
 | 
			
		||||
cat snapcraft.yaml
 | 
			
		||||
snapcraft --target-arch=$BUILD_ARCH
 | 
			
		||||
ls *.snap
 | 
			
		||||
 | 
			
		||||
echo "__________Calculating checksums__________"
 | 
			
		||||
rhash --sha256 $SNAP_PACKAGE -o $SNAP_PACKAGE".sha256"
 | 
			
		||||
cat $SNAP_PACKAGE".sha256"
 | 
			
		||||
 | 
			
		||||
echo "__________Releasing snap package__________"
 | 
			
		||||
echo "Release channel :" $CHANNEL " Branch/tag: " $CI_COMMIT_REF_NAME
 | 
			
		||||
 | 
			
		||||
echo $SNAPCRAFT_LOGIN_PARITY_BASE64 | base64 --decode > snapcraft.login
 | 
			
		||||
snapcraft login --with snapcraft.login
 | 
			
		||||
snapcraft push --release $CHANNEL $SNAP_PACKAGE
 | 
			
		||||
snapcraft status parity
 | 
			
		||||
snapcraft logout
 | 
			
		||||
@ -1,30 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
echo "________Running rust_changes.sh________"
 | 
			
		||||
set -e # fail on any error
 | 
			
		||||
set -u # treat unset variables as error
 | 
			
		||||
 | 
			
		||||
echo "__________Checking if Rust files were changed__________"
 | 
			
		||||
git log --graph --oneline --decorate=short -n 10
 | 
			
		||||
 | 
			
		||||
case ${SCHEDULE_TAG:-${CI_COMMIT_REF_NAME}} in
 | 
			
		||||
  (beta|stable)
 | 
			
		||||
    export GIT_COMPARE=origin/${SCHEDULE_TAG:-${CI_COMMIT_REF_NAME}}~
 | 
			
		||||
    ;;
 | 
			
		||||
  (master|nightly)
 | 
			
		||||
    export GIT_COMPARE=master~
 | 
			
		||||
    ;;
 | 
			
		||||
  (*)
 | 
			
		||||
    export GIT_COMPARE=master
 | 
			
		||||
    ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
export RUST_FILES_MODIFIED="$(git --no-pager diff --name-only $GIT_COMPARE...$CI_COMMIT_SHA | grep -v -e ^\\. -e ^LICENSE -e ^README.md -e ^CHANGELOG.md -e ^test.sh -e ^scripts/ -e ^docs/ -e ^docker/ -e ^snap/ | wc -l | tr -d ' ')"
 | 
			
		||||
echo "RUST_FILES_MODIFIED: $RUST_FILES_MODIFIED"
 | 
			
		||||
 | 
			
		||||
if [ "${RUST_FILES_MODIFIED}" = "0" ]
 | 
			
		||||
then
 | 
			
		||||
  echo "__________Skipping Rust tests since no Rust files modified__________";
 | 
			
		||||
  exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
rustup show
 | 
			
		||||
@ -1,19 +0,0 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
set -eu
 | 
			
		||||
 | 
			
		||||
DATA=$1
 | 
			
		||||
ADDRESS=$2
 | 
			
		||||
 | 
			
		||||
CODE=$(curl -o out.txt -w '%{http_code}' --data $DATA $ADDRESS)
 | 
			
		||||
cat out.txt && rm out.txt
 | 
			
		||||
echo "\n"
 | 
			
		||||
 | 
			
		||||
if [[ $CODE -eq 200 ]]; then
 | 
			
		||||
	echo 'Pushed to updater service.';
 | 
			
		||||
elif [[ $CODE -eq 202 ]]; then
 | 
			
		||||
	echo 'Updater service ignored request.';
 | 
			
		||||
else
 | 
			
		||||
	echo 'Unable to push info to updater service.';
 | 
			
		||||
	exit 2
 | 
			
		||||
fi
 | 
			
		||||
@ -1 +0,0 @@
 | 
			
		||||
@signtool sign /f %1 /p %2 /tr http://timestamp.comodoca.com /du https://parity.io %3
 | 
			
		||||
@ -1,21 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
echo "________Running test-cpp.sh________"
 | 
			
		||||
set -e # fail on any error
 | 
			
		||||
set -u # treat unset variables as error
 | 
			
		||||
#use nproc `linux only
 | 
			
		||||
THREADS=$(nproc)
 | 
			
		||||
export CC="sccache gcc"
 | 
			
		||||
export CXX="sccache g++"
 | 
			
		||||
 | 
			
		||||
echo "________Running the C++ example________"
 | 
			
		||||
DIR=parity-clib/examples/cpp/build
 | 
			
		||||
mkdir -p $DIR
 | 
			
		||||
cd $DIR
 | 
			
		||||
cmake ..
 | 
			
		||||
make VERBOSE=1 -j $THREADS
 | 
			
		||||
# Note: we don't try to run the example because it tries to sync Kovan, and we don't want
 | 
			
		||||
#       that to happen on CI
 | 
			
		||||
cd -
 | 
			
		||||
rm -rf $DIR
 | 
			
		||||
#show sccache statistics
 | 
			
		||||
sccache --stop-server
 | 
			
		||||
@ -1,24 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# ARGUMENT $1 Rust flavor to run test with (stable/beta/nightly)
 | 
			
		||||
 | 
			
		||||
echo "________Running test-linux.sh________"
 | 
			
		||||
set -e # fail on any error
 | 
			
		||||
set -u # treat unset variables as error
 | 
			
		||||
 | 
			
		||||
export CC="sccache gcc"
 | 
			
		||||
export CXX="sccache g++"
 | 
			
		||||
FEATURES="json-tests"
 | 
			
		||||
 | 
			
		||||
OPTIONS="--release"
 | 
			
		||||
#use nproc `linux only
 | 
			
		||||
THREADS=$(nproc)
 | 
			
		||||
 | 
			
		||||
rustup default $1
 | 
			
		||||
rustup show
 | 
			
		||||
 | 
			
		||||
echo "________Running Parity Full Test Suite________"
 | 
			
		||||
# Why are we using RUSTFLAGS? See https://github.com/paritytech/parity-ethereum/pull/10719
 | 
			
		||||
CARGO_INCREMENTAL=0 RUSTFLAGS="-C opt-level=3 -C overflow-checks=on -C debuginfo=2" time cargo test $OPTIONS --features "$FEATURES" --locked --all --target $CARGO_TARGET --verbose --color=never -- --test-threads $THREADS
 | 
			
		||||
 | 
			
		||||
#show sccache statistics
 | 
			
		||||
sccache --stop-server
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user