PHP WebShell

Текущая директория: /opt/BitGoJS/.github/workflows

Просмотр файла: ci.yml

name: BitGo SDK
on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
      - rel/**

  workflow_dispatch:

jobs:
  unit-test:
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        node-version: [18.x, 20.x]

    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ github.event.pull_request.head.sha }}
          fetch-depth: 0

      - name: Setup node:${{ matrix.node-version }}
        uses: actions/setup-node@v2
        with:
          node-version: ${{ matrix.node-version }}

      - name: Build Info
        run: |
          echo "node $(node --version)"
          echo "npm $(npm --version)"
          echo "yarn $(yarn --version)"
          git --version
          echo "base ref $GITHUB_BASE_REF"
          echo "head ref $GITHUB_HEAD_REF"

      - name: Fetch Base Ref
        run: |
          git fetch origin $GITHUB_BASE_REF

      - name: restore lerna dependencies
        id: lerna-cache
        uses: actions/cache@v3
        with:
          path: |
            node_modules
            modules/*/node_modules
          key: ${{ runner.os }}-node${{matrix.node-version}}-${{ hashFiles('yarn.lock') }}-${{ hashFiles('tsconfig.packages.json') }}-${{ hashFiles('package.json') }}

      - name: Install Packages
        if: steps.lerna-cache.outputs.cache-hit != 'true' || contains( github.event.pull_request.labels.*.name, 'SKIP_CACHE')
        run: yarn install --with-frozen-lockfile --ignore-scripts

      - name: Check In-Repo Package Versions
        run: yarn run check-versions

      - name: build packages
        env:
          # Workaround for https://github.com/nodejs/node/issues/51555
          DISABLE_V8_COMPILE_CACHE: '1'
        run: yarn run postinstall

      - name: Unit Test
        run: yarn run unit-test-changed
        env:
          BITGOJS_TEST_PASSWORD: ${{ secrets.BITGOJS_TEST_PASSWORD }}

      # - name: Upload Code Coverage
      #   run: |
      #     yarn run gen-coverage-changed
      #     yarn run coverage
      #   env:
      #     CODECOV_FLAG: unit
      #     CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

  code-quality:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        check: ['lint', 'format', 'commit-lint', 'dependencies', 'audit']

    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ github.event.pull_request.head.sha }}

      - name: Setup node 18
        uses: actions/setup-node@v3
        with:
          node-version: 18

      - name: restore lerna dependencies
        id: lerna-cache
        uses: actions/cache@v3
        with:
          path: |
            node_modules
            modules/*/node_modules
          key: ${{ runner.os }}-node18-${{ hashFiles('yarn.lock') }}-${{ hashFiles('tsconfig.packages.json') }}-${{ hashFiles('package.json') }}

      - name: Install Packages
        if: steps.lerna-cache.outputs.cache-hit != 'true' || contains( github.event.pull_request.labels.*.name, 'SKIP_CACHE')
        run: yarn install --with-frozen-lockfile --ignore-scripts

      - name: Lint Source Code
        if: matrix.check == 'lint'
        run: yarn run lint

      - name: Check Source Code Formatting
        if: matrix.check == 'format'
        run: yarn run check-fmt

      - name: Lint Commit Messages
        if: matrix.check == 'commit-lint'
        run: |
          git fetch --unshallow origin $GITHUB_BASE_REF
          GITHUB_REPO_BRANCH=$GITHUB_BASE_REF yarn run check-commits

      - name: Check Package Dependencies
        if: matrix.check == 'dependencies'
        run: yarn run check-deps

      - name: Audit Dependencies
        if: matrix.check == 'audit'
        run: yarn run improved-yarn-audit --min-severity high

  browser-test:
    runs-on: ubuntu-22.04

    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ github.event.pull_request.head.sha }}

      - name: Setup node 18
        uses: actions/setup-node@v3
        with:
          node-version: 18 # this just needs to pass our lock file requirement for compilation

      - name: Build Info
        run: |
          echo "node $(node --version)"
          echo "npm $(npm --version)"
          echo "yarn $(yarn --version)"
          git --version
          echo "base ref $GITHUB_BASE_REF"
          echo "head ref $GITHUB_HEAD_REF"

      - name: Install APT Packages
        run: |
          sudo apt-get update
          sudo apt-get install -y \
            gconf-service \
            libasound2 \
            libatk1.0-0 \
            libatk-bridge2.0-0 \
            libc6 \
            libcairo2 \
            libcups2 \
            libdbus-1-3 \
            libexpat1 \
            libfontconfig1 \
            libgcc1 \
            libgconf-2-4 \
            libgdk-pixbuf2.0-0 \
            libglib2.0-0 \
            libgtk-3-0 \
            libnspr4 \
            libpango-1.0-0 \
            libpangocairo-1.0-0 \
            libstdc++6 \
            libx11-6 \
            libx11-xcb1 \
            libxcb1 \
            libxcomposite1 \
            libxcursor1 \
            libxdamage1 \
            libxext6 \
            libxfixes3 \
            libxi6 \
            libxrandr2 \
            libxrender1 \
            libxss1 \
            libxtst6 \
            ca-certificates \
            fonts-liberation \
            libappindicator1 \
            libnss3 \
            lsb-release \
            xdg-utils \
            wget

      - name: restore lerna dependencies
        id: lerna-cache
        uses: actions/cache@v3
        with:
          path: |
            node_modules
            modules/*/node_modules
            /home/runner/.cache/Cypress
          key: ${{ runner.os }}-${{ hashFiles('yarn.lock') }}-${{ hashFiles('tsconfig.packages.json')}}-${{ hashFiles('package.json') }}

      - name: Install Packages
        if: steps.lerna-cache.outputs.cache-hit != 'true' || contains( github.event.pull_request.labels.*.name, 'SKIP_CACHE')
        run: yarn install --with-frozen-lockfile

      - name: build packages
        if: steps.lerna-cache.outputs.cache-hit == 'true'
        env:
          # Workaround for https://github.com/nodejs/node/issues/51555
          DISABLE_V8_COMPILE_CACHE: '1'
        run: yarn run postinstall

      - name: Browser Tests
        run: yarn run browser-tests
        env:
          BITGOJS_TEST_PASSWORD: ${{ secrets.BITGOJS_TEST_PASSWORD }}

  docker-build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ github.event.pull_request.head.sha }}
      - name: Build BitGoJS Express Docker Image
        run: podman build .

Выполнить команду


Для локальной разработки. Не используйте в интернете!