name: Build & Depoly on: [push] jobs: depoly: runs-on: docker container: image: node:20-bullseye name: Depoly blog steps: - name: Install git-lfs run: apt update -y && apt install -y git-lfs - name: Checkout uses: actions/checkout@v4 with: submodules: true # Checkout private submodules(themes or something else). - name: Checkout LFS run: | UrlBase=$GITHUB_SERVER_URL; \ UrlLfsBase=$UrlBase/${{ github.repository }}.git/info/lfs/objects; \ Auth=`/usr/bin/git config --get --local http.$UrlBase/.extraheader`; \ /usr/bin/git config --local http.${UrlLfsBase}/batch.extraheader "$Auth"; \ /usr/bin/git config --local http.${UrlLfsBase}/.extraheader '' git config --local lfs.transfer.maxretries 1 git lfs fetch origin refs/remotes/origin/${{ github.ref_name }} git lfs checkout - name: Setup pnpm run: | corepack enable corepack prepare pnpm@latest-9 --activate pnpm config set store-dir /tmp/pnpm-store - name: Cache Dependencies id: dependencies-cache uses: actions/cache@v4 with: path: /tmp/pnpm-store key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} - name: Install Dependencies run: pnpm install - name: Cache Generated Files id: files-cache uses: actions/cache@v4 with: path: | public/** db.json key: generated-files-1 - name: Build Website run: pnpm build - name: Depoly Website uses: https://github.com/cloudflare/wrangler-action@v3 with: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} command: pages deploy --project-name=rubicons-blog public