name: Static Analysis on: pull_request: { } push: branches: [ develop, master ] repository_dispatch: types: [ upstream-sdk-notify ] env: # These must be set for fetchdep.sh to get the right branch REPOSITORY: ${{ github.repository }} PR_NUMBER: ${{ github.event.pull_request.number }} jobs: ts_lint: name: "Typescript Syntax Check" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v3 with: cache: 'yarn' - name: Install Deps run: "./scripts/ci/install-deps.sh --ignore-scripts" - name: Typecheck run: "yarn run lint:types" - name: Switch js-sdk to release mode run: | scripts/ci/js-sdk-to-release.js cd node_modules/matrix-js-sdk yarn install yarn run build:compile yarn run build:types - name: Typecheck (release mode) run: "yarn run lint:types" i18n_lint: name: "i18n Diff Check" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v3 with: cache: 'yarn' # Does not need branch matching as only analyses this layer - name: Install Deps run: "yarn install" - name: i18n Check run: "yarn run diff-i18n" js_lint: name: "ESLint" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v3 with: cache: 'yarn' # Does not need branch matching as only analyses this layer - name: Install Deps run: "yarn install" - name: Run Linter run: "yarn run lint:js" style_lint: name: "Style Lint" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v3 with: cache: 'yarn' # Does not need branch matching as only analyses this layer - name: Install Deps run: "yarn install" - name: Run Linter run: "yarn run lint:style" sonarqube: name: "SonarQube" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - name: SonarCloud Scan uses: SonarSource/sonarcloud-github-action@master env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}