name: checks on: push: branches: - master - release-v* pull_request: {} workflow_dispatch: {} concurrency: group: checks-${{ github.ref }} cancel-in-progress: true jobs: changelog: if: github.event_name == 'pull_request' && github.repository != 'OpenZeppelin/openzeppelin-contracts-upgradeable' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Check diff run: | git fetch origin ${{ github.base_ref }} --depth=1 if git diff --exit-code origin/${{ github.base_ref }} -- CHANGELOG.md ; then echo 'Missing changelog entry' exit 1 fi lint: if: github.repository != 'OpenZeppelin/openzeppelin-contracts-upgradeable' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up environment uses: ./.github/actions/setup - run: npm run lint tests: runs-on: ubuntu-latest env: FORCE_COLOR: 1 GAS: true steps: - uses: actions/checkout@v3 - name: Set up environment uses: ./.github/actions/setup - name: Run tests and generate gas report run: npm run test - name: Check linearisation of the inheritance graph run: npm run test:inheritance - name: Check proceduraly generated contracts are up-to-date if: github.repository != 'OpenZeppelin/openzeppelin-contracts-upgradeable' run: npm run test:generation - name: Compare gas costs uses: ./.github/actions/gas-compare with: token: ${{ github.token }} coverage: if: github.repository != 'OpenZeppelin/openzeppelin-contracts-upgradeable' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up environment uses: ./.github/actions/setup - run: npm run coverage env: NODE_OPTIONS: --max_old_space_size=4096 - uses: codecov/codecov-action@v3 slither: if: github.repository != 'OpenZeppelin/openzeppelin-contracts-upgradeable' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up environment uses: ./.github/actions/setup - uses: crytic/slither-action@v0.1.1 codespell: if: github.repository != 'OpenZeppelin/openzeppelin-contracts-upgradeable' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Run CodeSpell uses: codespell-project/actions-codespell@v1.0 with: check_filenames: true skip: package-lock.json