diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index bdf4c5e..249ec4c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,31 +1,57 @@ -name: Deploy to GitHub Pages +name: Build & deploy on: push: branches: - main + pull_request: + branches: + - main jobs: - build-and-deploy: + build: + name: Build runs-on: ubuntu-latest + steps: - - name: Checkout Repository - uses: actions/checkout@v2 - - - name: Install Node.js - uses: actions/setup-node@v2 - with: - node-version: '20' - - - name: Install Dependencies - run: npm install - - - name: Build - run: npm run build - - - name: Deploy - uses: JamesIves/github-pages-deploy-action@4.1.4 - with: - branch: gh-pages - folder: build - token: ${{ secrets.GITHUB_TOKEN }} + - name: Checkout code + uses: actions/checkout@v2 + + - name: Installing Node.js + uses: actions/setup-node@v1 + with: + node-version: 20.x + + - name: Installing NPM packages + run: npm ci + + - name: Building project + run: npm run build + + - name: Running tests + run: npm run test + + - name: Uploading production-ready build files + uses: actions/upload-artifact@v2 + with: + name: production-files + path: ./build + + deploy: + name: Deploy + needs: build + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/main' + + steps: + - name: Downloading artifact + uses: actions/download-artifact@v2 + with: + name: production-files + path: ./build + + - name: Deploying to gh-pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./build \ No newline at end of file