name: ci on: # Triggers the workflow on push or pull request events but only for the main branch push: branches: [main] pull_request: branches: [main] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: install: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: .//node_modules key: ${{ runner.os }}-yarn-cache-${{ hashFiles('./yarn.lock') }} - name: yarn-install # Check out the lockfile from main, reinstall, and then # verify the lockfile matches what was committed. run: | yarn install CHANGES=$(git status -s) if [[ ! -z $CHANGES ]]; then echo "Changes found: $CHANGES" git diff exit 1 fi build: runs-on: ubuntu-latest needs: [install] steps: - uses: actions/checkout@v2 - name: yarn-cache uses: actions/cache@v2 with: path: .//node_modules key: ${{ runner.os }}-yarn-cache-${{ hashFiles('./yarn.lock') }} - name: build-cache uses: actions/cache@v2 with: path: ./* key: ${{ github.sha }} - name: build run: yarn run build prettier: runs-on: ubuntu-latest needs: [install] steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: .//node_modules key: ${{ runner.os }}-yarn-cache-${{ hashFiles('./yarn.lock') }} - name: prettier run: | yarn run prettier CHANGES=$(git status -s) if [[ ! -z $CHANGES ]]; then echo "Changes found: $CHANGES" exit 1 fi test: runs-on: ubuntu-latest needs: [build] steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: ./* key: ${{ github.sha }} - name: test run: yarn run test