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@v3 - name: yarn-cache uses: actions/cache@v3 with: path: | **/node_modules .yarn/cache 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@v3 - name: yarn-cache uses: actions/cache@v3 with: path: | **/node_modules .yarn/cache key: ${{ runner.os }}-yarn-cache-${{ hashFiles('./yarn.lock') }} - name: build run: yarn run build prettier: runs-on: ubuntu-latest needs: [install] steps: - uses: actions/checkout@v3 - name: yarn-cache uses: actions/cache@v3 with: path: | **/node_modules .yarn/cache 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 lint: runs-on: ubuntu-latest needs: [install] steps: - uses: actions/checkout@v3 - name: yarn-cache uses: actions/cache@v3 with: path: | **/node_modules .yarn/cache key: ${{ runner.os }}-yarn-cache-${{ hashFiles('./yarn.lock') }} - name: lint run: yarn run lint