From 52874f44554d5f38d04b7c96c3f53311edc745c1 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 30 Jun 2026 02:13:50 +0000 Subject: [PATCH 1/2] =?UTF-8?q?ci:=20GitHub=20Actions=20=E3=81=AE=E3=82=A2?= =?UTF-8?q?=E3=82=AF=E3=82=B7=E3=83=A7=E3=83=B3=E3=82=92=E6=96=B0=E3=83=90?= =?UTF-8?q?=E3=83=BC=E3=82=B8=E3=83=A7=E3=83=B3=E3=81=B8=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E3=81=97=20actionlint=20=E3=82=92=E9=80=9A=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit actionlint が "the runner of ... action is too old to run" を検出し actions-test ジョブが失敗していた(alpha-0.2 既存の不具合)。 ランタイム廃止された古いアクションを互換性のある最新メジャーへ更新する。 - actions/checkout@v3 -> v4 - actions/setup-node@v2,v3 -> v4 - actions/cache@v3 -> v4 - google-github-actions/auth@v1 -> v2 - google-github-actions/setup-gcloud@v1 -> v2 入力仕様は各アクションで互換のため挙動は変えない。 ローカルで actionlint v1.7.12 がエラーなし(exit 0)を確認済み。 Co-authored-by: kojira --- .github/workflows/dev-deploy.yml | 10 +++++----- .github/workflows/prod-deploy.yml | 10 +++++----- .github/workflows/setup.yml | 8 ++++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/dev-deploy.yml b/.github/workflows/dev-deploy.yml index 6b1e85c..a309ee8 100644 --- a/.github/workflows/dev-deploy.yml +++ b/.github/workflows/dev-deploy.yml @@ -12,7 +12,7 @@ jobs: build: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Run actionlint shell: bash @@ -22,12 +22,12 @@ jobs: ./actionlint -color - name: setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: "18" - name: cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} @@ -61,7 +61,7 @@ jobs: run: | set -ex echo "${{ secrets.DEV_GCLOUD_SERVICE_KEY }}" | base64 -d > ${{ env.GCP_KEY_PATH }} - - uses: 'google-github-actions/auth@v1' + - uses: 'google-github-actions/auth@v2' with: credentials_json: '${{ secrets.DEV_GCLOUD_SERVICE_KEY }}' @@ -69,7 +69,7 @@ jobs: run: 'gcloud auth list --filter=status:ACTIVE --format="value(account)"' - name: 'Set up Cloud SDK' - uses: 'google-github-actions/setup-gcloud@v1' + uses: 'google-github-actions/setup-gcloud@v2' with: install_components: '' project_id: 'd-shrine-dev' diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 3cd40c5..f146f0b 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -12,7 +12,7 @@ jobs: deploy: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Run actionlint shell: bash @@ -22,12 +22,12 @@ jobs: ./actionlint -color - name: setup node - uses: actions/setup-node@v2 + uses: actions/setup-node@v4 with: node-version: "18" - name: cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} @@ -64,14 +64,14 @@ jobs: run: | set -ex echo "${{ secrets.PROD_GCLOUD_SERVICE_KEY }}" | base64 -d > ${{ env.GCP_KEY_PATH }} - - uses: 'google-github-actions/auth@v1' + - uses: 'google-github-actions/auth@v2' with: credentials_json: '${{ secrets.PROD_GCLOUD_SERVICE_KEY }}' - name: 'Use gcloud CLI' run: 'gcloud auth list --filter=status:ACTIVE --format="value(account)"' - name: 'Set up Cloud SDK' - uses: 'google-github-actions/setup-gcloud@v1' + uses: 'google-github-actions/setup-gcloud@v2' with: install_components: '' project_id: 'd-shrine' diff --git a/.github/workflows/setup.yml b/.github/workflows/setup.yml index 373a034..01a3780 100644 --- a/.github/workflows/setup.yml +++ b/.github/workflows/setup.yml @@ -10,7 +10,7 @@ jobs: actions-test: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Run actionlint shell: bash @@ -22,15 +22,15 @@ jobs: build: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: "18" - name: cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} From e18cb7077ed0028064ad5d9ab5433fc683e8c332 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 30 Jun 2026 03:19:40 +0000 Subject: [PATCH 2/2] =?UTF-8?q?fix(functions):=20=E5=8F=82=E6=8B=9D?= =?UTF-8?q?=E6=99=82=E3=81=AE=20exp=20=E4=BA=8C=E9=87=8D=E5=8A=A0=E7=AE=97?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sanpai で userRef.update を2回呼んでおり、双方に FieldValue.increment(add_exp) が含まれていたため、DB上の exp が獲得ポイントの2倍だけ加算されていた (表示用 status.exp は userData.exp + add_exp で1倍のため、DBと表示が乖離)。 1回目の update は参拝可能時間ロックのための last_sanpai 確定が目的なので、 exp の加算を除去し、計算後の2回目の update でのみ1回加算する。 注意: 既存ユーザーの exp は過去の二重加算分を含む可能性があるが、 本修正は今後の加算のみを正す(過去データの遡及補正は行わない)。 Co-authored-by: kojira --- app/functions/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/functions/index.js b/app/functions/index.js index fead21f..c76edff 100644 --- a/app/functions/index.js +++ b/app/functions/index.js @@ -995,10 +995,10 @@ exports.sanpai = functions.https.onRequest(async(request, response) => { msg = "2022/1/1〜2022/1/3はポイント3倍!" } - // 更新 + // 参拝可能時間のロックのため last_sanpai を先に確定させる + // (exp/status は計算後の下の update でまとめて反映する) await userRef.update({ - last_sanpai: FieldValue.serverTimestamp(), - exp: FieldValue.increment(add_exp) + last_sanpai: FieldValue.serverTimestamp() }) const sanpai_logsRef = userRef.collection("sanpai_logs") const sanpaiRes = await sanpai_logsRef.add({