From 2dde18f71d1d6437e57433986584e89df7582673 Mon Sep 17 00:00:00 2001 From: barryz Date: Tue, 7 Sep 2021 15:20:44 +0800 Subject: [PATCH] ci: add job to lint buld and package geth --- .github/labeler.yml | 23 ++++++ .github/workflows/ci.yml | 127 ++++++++++++++++++++++++++++++++++ .github/workflows/labeler.yml | 22 ++++++ 3 files changed, 172 insertions(+) create mode 100644 .github/labeler.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/labeler.yml diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 0000000000..a4c261f923 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,23 @@ +Need-Review: + - '*/**/*' + +CI: + - any: ['.github/**/*'] + +Eth: + - any: ['eth/**/*'] + +P2p: + - any: ['p2p/**/*'] + +Ops: + - any: ['metrics/**/*'] + +Node: + - any: ['node/**/*'] + +Core: + - any: ['core/**/*'] + +Version-Bump: + - any: ['params/version.go'] \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000000..e502c49276 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,127 @@ +name: geth unit tests + +on: + push: + branches: + - 'debank' + pull_request: + branches: + - 'debank' + workflow_dispatch: + +env: + TEMP_ARTIFACT_NAME: geth + BUILT_BINARY_PATH: build/bin + BUILT_BINARY_NAME: geth + OSS_ARCHIVE_FILE_NAME: eth-latest-linux-amd64 + OSS_ARCHIVE_BUCKET: debank-artifacts + OSS_ARCHIVE_FILE_PREFIX: downloads + OSS_DOMESTIC_ENDPOINT: oss-cn-hangzhou.aliyuncs.com + +defaults: + run: + working-directory: ./ + +jobs: + lint: + runs-on: ubuntu-latest + + steps: + - name: Install Go + uses: actions/setup-go@v2 + with: + go-version: 1.16.x + + - name: Checkout code + uses: actions/checkout@v2 + with: + ref: ${{ github.event.pull_request.head.sha }} + + - name: Configure git for private modules + run: | + git config --global url."https://${{ secrets.GO_MODULES_TOKEN }}:x-oauth-basic@github.com/DeBankDeFi".insteadOf "https://github.com/DeBankDeFi" + + - name: Golangci-lint + uses: golangci/golangci-lint-action@v2 + with: + version: v1.42.1 + only-new-issues: true + + build: + runs-on: ubuntu-latest + + needs: lint + + steps: + - name: Install Go + uses: actions/setup-go@v2 + with: + go-version: 1.16.x + + - name: Checkout code + uses: actions/checkout@v2 + with: + ref: ${{ github.event.pull_request.head.sha }} + + - uses: actions/cache@v2 + with: + path: | + ~/go/pkg/mod + ~/.cache/go-build + key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go- + + - name: Make binaries + run: | + git config --global url."https://${{ secrets.GO_MODULES_TOKEN }}:x-oauth-basic@github.com/DeBankDeFi".insteadOf "https://github.com/DeBankDeFi" + make geth + + - name: Archive built binaries + uses: actions/upload-artifact@v2 + with: + name: ${{ env.TEMP_ARTIFACT_NAME }} + path: ${{ env.BUILT_BINARY_PATH }}/${{ env.BUILT_BINARY_NAME }} + retention-days: 1 + + package: + runs-on: ubuntu-latest + + needs: build + + steps: + - name: Download built binaries + uses: actions/download-artifact@v2 + with: + name: ${{ env.TEMP_ARTIFACT_NAME }} + path: ${{ env.BUILT_BINARY_PATH }} + + - name: Archive artifacts + run: | + mkdir $OSS_ARCHIVE_FILE_NAME + cp $BUILT_BINARY_PATH/$BUILT_BINARY_NAME $OSS_ARCHIVE_FILE_NAME/$BUILT_BINARY_NAME + sha256sum $OSS_ARCHIVE_FILE_NAME/$BUILT_BINARY_NAME --tag >> $OSS_ARCHIVE_FILE_NAME/sha256.checksum + chmod u+x $OSS_ARCHIVE_FILE_NAME/$BUILT_BINARY_NAME + $OSS_ARCHIVE_FILE_NAME/$BUILT_BINARY_NAME version + tar cvfz $OSS_ARCHIVE_FILE_NAME.tar.gz $OSS_ARCHIVE_FILE_NAME + + - name: Setup aliyun oss + uses: barryz/setup-ossutil@master + with: + endpoint: ${{ env.OSS_DOMESTIC_ENDPOINT }} + access-key-id: ${{ secrets.OSS_KEY_ID }} + access-key-secret: ${{ secrets.OSS_KEY_SECRET }} + + - name: Copy artifacts to oss + run: | + ossutil cp -rf $OSS_ARCHIVE_FILE_NAME.tar.gz oss://$OSS_ARCHIVE_BUCKET/$OSS_ARCHIVE_FILE_PREFIX/$OSS_ARCHIVE_FILE_NAME.tar.gz + ossutil set-acl oss://$OSS_ARCHIVE_BUCKET/$OSS_ARCHIVE_FILE_PREFIX/$OSS_ARCHIVE_FILE_NAME.tar.gz public-read + + - name: comment PR + uses: unsplash/comment-on-pr@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + msg: "Artifacts uploaded, click or copy [this link](https://${{ env.OSS_ARCHIVE_BUCKET }}.${{ env.OSS_DOMESTIC_ENDPOINT }}/${{ env.OSS_ARCHIVE_FILE_PREFIX }}/${{ env.OSS_ARCHIVE_FILE_NAME }}.tar.gz) to download. :tada:" + check_for_duplicate_msg: true + continue-on-error: true \ No newline at end of file diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml new file mode 100644 index 0000000000..92e7dd60eb --- /dev/null +++ b/.github/workflows/labeler.yml @@ -0,0 +1,22 @@ +name: "Pull Request Labeler" +on: + push: + branches: + - 'debank' + pull_request: + branches: + - 'debank' + workflow_dispatch: + +defaults: + run: + working-directory: ./ + +jobs: + triage: + runs-on: ubuntu-latest + steps: + - uses: actions/labeler@v3 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + configuration-path: .github/labeler.yml