From c77439592c8e5d45a69e6557ab78e22c6bdee338 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Fri, 6 Nov 2020 16:50:30 -0300 Subject: [PATCH] Migrate to GitHub Actions --- .circleci/config.yml | 84 -------------------------------------- .github/workflows/test.yml | 39 ++++++++++++++++++ CONTRIBUTING.md | 7 ---- README.md | 1 - package.json | 2 +- scripts/coverage.sh | 9 ---- 6 files changed, 40 insertions(+), 102 deletions(-) delete mode 100644 .circleci/config.yml create mode 100644 .github/workflows/test.yml delete mode 100755 scripts/coverage.sh diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 4a5cd1101..000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,84 +0,0 @@ -version: 2 -# 2.1 does not yet support local run -# unless with workaround. For simplicity just use it. -# https://github.com/CircleCI-Public/circleci-cli/issues/79 - -aliases: - - &defaults - docker: - - image: circleci/node:10 - - - &cache_key_node_modules - key: v1-node_modules-{{ checksum "package-lock.json" }} - -jobs: - dependencies: - <<: *defaults - steps: - - checkout - - restore_cache: - <<: *cache_key_node_modules - - run: - name: Install npm dependencies and prepare - command: | - if [ ! -d node_modules ]; then - npm ci - else - npm run prepare - fi - - persist_to_workspace: - root: . - paths: - - node_modules - - build - - save_cache: - paths: - - node_modules - <<: *cache_key_node_modules - - lint: - <<: *defaults - steps: - - checkout - - attach_workspace: - at: . - - run: - name: Linter - command: npm run lint - test: - <<: *defaults - steps: - - checkout - - attach_workspace: - at: . - - run: - name: Unit tests - command: npm run test - - coverage: - <<: *defaults - steps: - - checkout - - attach_workspace: - at: . - - run: - name: Unit tests with coverage report - command: npm run coverage - - # TODO(xinbenlv, #1839): run SOLC_NIGHTLY to be run but allow it to fail. - -workflows: - version: 2 - everything: - jobs: - - dependencies - - lint: - requires: - - dependencies - - test: - requires: - - dependencies - - coverage: - requires: - - dependencies - diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..d76128fc7 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,39 @@ +name: Test + +on: + push: + branches: [master] + pull_request: {} + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 10.x + - uses: actions/cache@v2 + with: + path: ~/.npm + key: npm-${{ hashFiles('**/package-lock.json') }} + restore-keys: npm- + - run: npm ci + - run: npm run lint + - run: npm run test + + coverage: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 10.x + - uses: actions/cache@v2 + with: + path: ~/.npm + key: npm-${{ hashFiles('**/package-lock.json') }} + restore-keys: npm- + - run: npm ci + - run: npm run coverage + - uses: codecov/codecov-action@v1 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b47202144..247396df4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -44,13 +44,6 @@ npm test npm run lint ``` -or you can simply run CircleCI locally -```bash -circleci local execute --job build -circleci local execute --job test -``` -*Note*: requires installing CircleCI and docker locally on your machine. - 5) Go to [github.com/OpenZeppelin/openzeppelin-contracts](https://github.com/OpenZeppelin/openzeppelin-contracts) in your web browser and issue a new pull request. *IMPORTANT* Read the PR template very carefully and make sure to follow all the instructions. These instructions diff --git a/README.md b/README.md index 4e3edecf1..37b9c8535 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@ [![Docs](https://img.shields.io/badge/docs-%F0%9F%93%84-blue)](https://docs.openzeppelin.com/contracts) [![NPM Package](https://img.shields.io/npm/v/@openzeppelin/contracts.svg)](https://www.npmjs.org/package/@openzeppelin/contracts) -[![Build Status](https://circleci.com/gh/OpenZeppelin/openzeppelin-contracts.svg?style=shield)](https://circleci.com/gh/OpenZeppelin/openzeppelin-contracts) [![Coverage Status](https://codecov.io/gh/OpenZeppelin/openzeppelin-contracts/graph/badge.svg)](https://codecov.io/gh/OpenZeppelin/openzeppelin-contracts) **A library for secure smart contract development.** Build on a solid foundation of community-vetted code. diff --git a/package.json b/package.json index df42e49d0..2b5319600 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ ], "scripts": { "compile": "buidler compile", - "coverage": "scripts/coverage.sh", + "coverage": "buidler coverage", "docs": "oz-docs", "docs:watch": "npm run docs watch contracts 'docs/*.hbs'", "prepare-docs": "scripts/prepare-docs.sh", diff --git a/scripts/coverage.sh b/scripts/coverage.sh deleted file mode 100755 index 0db0003f5..000000000 --- a/scripts/coverage.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -buidler coverage - -if [ -n "$CI" ]; then - curl -s https://codecov.io/bash | bash -s -- -C "$CIRCLE_SHA1" -fi