name: node on: # Triggers the workflow on push or pull request events but only for the main branch push: branches: [main] pull_request: branches: [main] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: npm-install: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: .//node_modules key: ${{ runner.os }}-npm-cache-${{ hashFiles('./package-lock.json') }} - name: npm-install # Check out the lockfile from main, reinstall, and then # verify the lockfile matches what was committed. run: | npm install CHANGES=$(git status -s) if [[ ! -z $CHANGES ]]; then echo "Changes found: $CHANGES" git diff exit 1 fi npm-build: runs-on: ubuntu-latest needs: [npm-install] steps: - uses: actions/checkout@v2 - name: npm-cache uses: actions/cache@v2 with: path: .//node_modules key: ${{ runner.os }}-npm-cache-${{ hashFiles('./package-lock.json') }} - name: build-cache uses: actions/cache@v2 with: path: ./* key: ${{ github.sha }} - name: build run: npm run build lint-ts: runs-on: ubuntu-latest needs: [npm-install] steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: .//node_modules key: ${{ runner.os }}-npm-cache-${{ hashFiles('./package-lock.json') }} - name: prettier run: | npm run prettier CHANGES=$(git status -s) if [[ ! -z $CHANGES ]]; then echo "Changes found: $CHANGES" exit 1 fi lint-sol: runs-on: ubuntu-latest needs: [npm-install] steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: .//node_modules key: ${{ runner.os }}-npm-cache-${{ hashFiles('./package-lock.json') }} - name: lint run: | npm --prefix ./solidity/abacus-core run lint npm --prefix ./solidity/abacus-xapps run lint test-ts: runs-on: ubuntu-latest needs: [npm-build] steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: ./* key: ${{ github.sha }} - name: test run: npm --prefix ./typescript/abacus-deploy run test test-sol: env: ETHERSCAN_API_KEY: "" runs-on: ubuntu-latest needs: [npm-build] steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: ./* key: ${{ github.sha }} - name: core run: npm --prefix ./solidity/abacus-core run test - name: xapps run: npm --prefix ./solidity/abacus-xapps run test