name: Test, Build, and Deploy on: push: branches: - master jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: ๐Ÿ“ฅ Checkout code uses: actions/checkout@v4 - name: ๐ŸŸข Set up Node.js uses: actions/setup-node@v4 with: node-version: '22' - name: โ™ป๏ธ Cache npm uses: actions/cache@v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: ๐Ÿ“ฆ Install dependencies run: npm ci - name: ๐Ÿงช Run tests run: npm run test - name: ๐Ÿ› ๏ธ Build project run: npm run build - name: ๐Ÿ›‘ Disable Jekyll run: echo > dist/.nojekyll - name: ๐Ÿš€ Deploy if: success() && github.ref == 'refs/heads/master' uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./dist