chore(contracts): Avoid code duplication in AbstractPortal (#826) #1361
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: SDK | |
on: | |
pull_request: | |
branches: | |
- main | |
- dev | |
- release/* | |
push: | |
branches: | |
- main | |
- dev | |
- release/* | |
jobs: | |
unit-test-sdk: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: sdk | |
steps: | |
- name: Check out the repo | |
uses: actions/checkout@v3 | |
- name: Install Pnpm | |
uses: pnpm/action-setup@v2 | |
with: | |
version: 9 | |
run_install: false | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: pnpm | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v3 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Install dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Run the unit tests | |
run: pnpm run test:unit:coverage | |
- name: Move the report at the root of the 'sdk' folder | |
run: mv coverage/lcov.info . | |
- name: Upload coverage report to Codecov | |
if: env.CODECOV_TOKEN != '' | |
env: | |
CODECOV_TOKEN: ${{secrets.CODECOV_TOKEN}} | |
uses: codecov/codecov-action@v3 | |
with: | |
files: ./sdk/lcov.info | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: true | |
verbose: true | |
- name: Check test coverage | |
uses: terencetcf/github-actions-lcov-minimum-coverage-checker@v1 | |
with: | |
coverage-file: sdk/lcov.info | |
minimum-coverage: 50 | |
- name: Add coverage summary if upload | |
if: env.CODECOV_TOKEN != '' | |
env: | |
CODECOV_TOKEN: ${{secrets.CODECOV_TOKEN}} | |
run: | | |
echo "## Coverage result" >> $GITHUB_STEP_SUMMARY | |
echo "✅ Uploaded to Codecov" >> $GITHUB_STEP_SUMMARY | |
- name: Add coverage summary if no upload | |
if: env.CODECOV_TOKEN == '' | |
env: | |
CODECOV_TOKEN: ${{secrets.CODECOV_TOKEN}} | |
run: | | |
echo "## Coverage result" >> $GITHUB_STEP_SUMMARY | |
echo "✅ Coverage not uploaded to Codecov" >> $GITHUB_STEP_SUMMARY | |
integration-test-sdk: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: sdk | |
steps: | |
- name: Check out the repo | |
uses: actions/checkout@v3 | |
- name: Install Pnpm | |
uses: pnpm/action-setup@v2 | |
with: | |
version: 9 | |
run_install: false | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: pnpm | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v3 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Install dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Run the integration tests | |
run: pnpm run test:integration:ci | |
- name: Integration tests summary | |
run: | | |
echo "## Integration tests result" >> $GITHUB_STEP_SUMMARY | |
echo "✅ All passed" >> $GITHUB_STEP_SUMMARY |