diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..8c064db --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,60 @@ +name: cloudflare + +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + if: contains(github.event.head_commit.message, '[skip ci]') == false + + steps: + - name: 📥 Checkout repository + uses: actions/checkout@v3 + + - name: 📸 Calculate commit hash + id: sha + uses: pr-mpt/actions-commit-hash@v2 + + - name: 🔨 Prepare Node environment + uses: actions/setup-node@v4 + with: + node-version: 22 + + - name: 🎉 Install project dependencies + run: yarn install + + - name: 🏗️ Build app + run: yarn run build + + - name: 🚀 Deploy to Cloudflare Pages + id: cloudflare_pages_deploy + uses: cloudflare/pages-action@v1.4.0 + with: + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + gitHubToken: ${{ secrets.GITHUB_TOKEN }} + projectName: esachievement + directory: ./dist + env: + NODE_VERSION: 22 + + - name: 🚀 Deploy pages based on commit sha + uses: actions/github-script@v6 + with: + script: | + const sha = context.payload.pull_request?.head.sha ?? context.sha; + await github.rest.repos.createCommitStatus({ + owner: context.repo.owner, + repo: context.repo.repo, + context: 'cloudflare / build (push)', + description: 'Commit based deploy', + state: 'success', + sha, + target_url: "${{ steps.cloudflare_pages_deploy.outputs.url }}", + }); diff --git a/.node-version b/.node-version new file mode 100644 index 0000000..8fdd954 --- /dev/null +++ b/.node-version @@ -0,0 +1 @@ +22 \ No newline at end of file diff --git a/package.json b/package.json index 3bb1f64..9be1abd 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,9 @@ "fmt": "prettier --write ./src/", "lint": "eslint --ext .ts,.tsx ./src" }, + "engines": { + "node": "22" + }, "dependencies": { "@fontsource-variable/noto-sans-jp": "^5.0.19", "@generouted/react-router": "^1.19.3",