--- # File : ci.yml name: 'ci' on: push: branches: - '**' - '!main' pull_request: workflow_dispatch: defaults: run: shell: 'bash' jobs: changes: runs-on: 'ubuntu-latest' outputs: ts: ${{ steps.filter.outputs.ts }} steps: - uses: actions/checkout@v2 - name: '[check if build necessary]' uses: dorny/paths-filter@v2 id: filter with: filters: | ts: - '**.ts' - '**.tsx' - '**.json' lint-test-build: name: '[ci|lint-test-build]' runs-on: 'ubuntu-latest' needs: changes if: ${{ needs.changes.outputs.ts == 'true' }} steps: - name: '[checkout] ${{ github.repository }} project' uses: 'actions/checkout@v2' with: repository: '${{ github.repository }}' - name: '[setup node]' uses: 'actions/setup-node@v2' with: node-version: '16' - name: '[lint]' run: | echo TBA some linting - name: '[test]' run: | echo TBA some testing - name: '[build]' run: | git config --global url."https://github.com/".insteadOf ssh://git@github.com/ git config --global url."https://".insteadOf git:// git config --global url."https://".insteadOf ssh:// yarn install yarn run build yarn run export ... # End of ci.yml