name: Run spec tests and linter defaults: run: shell: zsh {0} env: TEST_PRESET_TYPE: "minimal" on: push: branches: - dev - master pull_request: workflow_dispatch: inputs: test_preset_type: default: minimal description: Type of test to run, either mainnet or minimal type: string required: true schedule: - cron: '0 0 * * *' jobs: preclear: runs-on: self-hosted if: always() steps: - name: 'Cleanup build folder' run: | ls -la ./ rm -rf ./* || true rm -rf ./.??* || true ls -la ./ table_of_contents: runs-on: self-hosted needs: preclear steps: - name: Checkout this repo uses: actions/checkout@v3.2.0 - name: Check table of contents run: sudo npm install -g doctoc@2.2.0 && make check_toc codespell: runs-on: self-hosted needs: preclear steps: - name: Checkout this repo uses: actions/checkout@v3.2.0 - name: Check codespell run: pip install 'codespell<3.0.0,>=2.0.0' --user && make codespell lint: runs-on: self-hosted needs: preclear steps: - name: Checkout this repo uses: actions/checkout@v3.2.0 - name: Install pyspec requirements run: make install_test - name: Run linter for pyspec run: make lint - name: Run linter for test generators run: make lint_generators pyspec-tests: runs-on: self-hosted needs: [preclear,lint,codespell,table_of_contents] strategy: matrix: version: ["phase0", "altair", "bellatrix", "capella", "deneb", "electra", "eip7251", "whisk", "eip7594"] steps: - name: Checkout this repo uses: actions/checkout@v3.2.0 - name: set TEST_PRESET_TYPE if: github.event.inputs.test_preset_type != '' run: | echo "spec_test_preset_type=${{ github.event.inputs.test_preset_type || env.TEST_PRESET_TYPE }}" >> $GITHUB_ENV - name: set TEST_PRESET_TYPE if: ${{ (github.event_name == 'push' && github.ref_name != 'master') || github.event_name == 'pull_request' }} run: | echo "spec_test_preset_type=${{ env.TEST_PRESET_TYPE}}" >> $GITHUB_ENV - name: set TEST_PRESET_TYPE if: ${{ github.event_name == 'push' && github.ref_name == 'master' }} run: | echo "spec_test_preset_type=mainnet" >> $GITHUB_ENV - name: set TEST_PRESET_TYPE if: github.event.schedule=='0 0 * * *' run: | echo "spec_test_preset_type=mainnet" >> $GITHUB_ENV - name: Install pyspec requirements run: make install_test - name: test-${{ matrix.version }} run: make citest fork=${{ matrix.version }} TEST_PRESET_TYPE=${{env.spec_test_preset_type}} - uses: actions/upload-artifact@v3 if: always() with: name: test-${{ matrix.version }} path: tests/core/pyspec/test-reports cleanup: runs-on: self-hosted needs: [preclear,pyspec-tests,codespell,lint,table_of_contents] if: always() steps: - name: 'Cleanup build folder' run: | ls -la ./ rm -rf ./* || true rm -rf ./.??* || true ls -la ./