Skip to content

Commit

Permalink
Merge pull request #20 from toiletevolution/upgrade-gae-2nd
Browse files Browse the repository at this point in the history
GAE 2nd エディションへの移行
  • Loading branch information
sizuhiko authored Mar 20, 2024
2 parents 535fae8 + 065cbad commit 4f3c400
Show file tree
Hide file tree
Showing 70 changed files with 6,466 additions and 5,854 deletions.
22 changes: 22 additions & 0 deletions .gcloudignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
.git
.gitignore
.gcloudignore

.editorconfig
.java-version
.jshintrc
.phpunit.result.cache
.python-version

*.log
logs

/localstorage/
/vendor/

npm-debug.log
package.json
package-lock.json
phpunit.xml.dist
polymer.json
tests
29 changes: 29 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: build
on:
pull_request:
types: [opened, synchronize]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: 'read'
id-token: 'write'
steps:
- uses: actions/checkout@v2
- uses: 'google-github-actions/auth@v1'
with:
workload_identity_provider: 'projects/825824562054/locations/global/workloadIdentityPools/actions-pool/providers/actions-provider'
service_account: '[email protected]'
- uses: 'google-github-actions/setup-gcloud@v1'
with:
install_components: 'alpha,beta,cloud-datastore-emulator'
- uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: redis
- uses: ramsey/composer-install@v2
- run: |
gcloud beta emulators datastore start --project toiletevolution-server-test &
curl http://localhost:8081 --silent --retry 30 --retry-connrefused --retry-delay 1
- run: gcloud beta emulators datastore env-init | sed -e "s/export //g" >> "$GITHUB_ENV"
- run: composer run-script t
58 changes: 51 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,24 @@ https://cloud.google.com/sdk/docs/?hl=ja

またSDKを実行するために `python` が必要になります。バージョン情報などは上記公式ドキュメントを参照してください。

### PHP 5.5
### PHP 8.2

GAEでサポートされているPHPのバージョンが5.5のため、ローカルにも同じバージョンのPHPが必要になります。
GAEでサポートされている最新PHPのバージョンが8.2のため、ローカルにも同じバージョンのPHPが必要になります。

以下のようなPHP環境切り替えツールを使って、バージョン5.5のPHPを用意してください
以下のようなPHP環境切り替えツールを使って、バージョン8.2のPHPを用意してください

- anyenv
- phpenv
- phpbrew(Mac OSXの場合のみ)

#### 拡張

Redis の拡張をインストールしておくこと

```
$ pecl install redis
```

### Node.js

フロントエンド開発およびビルド、デプロイなどのタスク実行のため `Node.js` が必要になります。
Expand Down Expand Up @@ -56,7 +64,7 @@ export APIKEY=GoogleのAPIキー
```

`src/settings.php.default` ファイルをコピーして `src/settings.php` にして、以下の環境設定を変更してください。
`oauth` の設定は、現時点ではGoogle+のみ有効となっています
`oauth` の設定は、現時点ではGoogleのみ有効となっています

```php
<?php
Expand All @@ -72,14 +80,16 @@ return [
'oauth' => [
'clientId' => 'PLEASE SET YOUR CLIENT ID',
'clientSecret' => 'PLEASE SET YOUR CLIENT SECRET',
'redirectUri' => 'http://localhost:8888/auth/google/callback', // PLEASE CHANGE URI
'hostedDomain' => 'http://localhost:8888', // PLEASE CHANGE DOMAIN
'redirectUri' => 'http://localhost:8888/auth/google/callback' // PLEASE CHANGE URI
],

'storage' => [
'name' => 'toiletevolution.appspot.com'
],


'redis' => [
'host' => 'redis://<username>:<password>@redis-13431.c1.asia-northeast1-1.gce.cloud.redislabs.com:13431' // PLEASE CHANGE URI
],
],
];
```
Expand Down Expand Up @@ -122,3 +132,37 @@ $ npm start
$ npm test
```

### Redis の起動

```
$ docker run -e REDIS_ARGS="--requirepass redis" -p 6379:6379 redis/redis-stack:latest
```

### データストアの起動

```
$ gcloud beta emulators datastore start
$ $(gcloud beta emulators datastore env-init)
```

テストが終了したら以下のコマンドで環境変数を削除できる

```
$ $(gcloud beta emulators datastore env-unset)
```

### PHPUnitの実行

```
composer run-script t
```

### 新しいバージョンへのデプロイ

バージョンが 2 の場合かつ、トラフィックを古いバージョンのままにするとき

```
npm run build
cd ./tmp
gcloud app deploy --project toiletevolution --version 2 --no-promote --appyaml=app.yml
```
24 changes: 6 additions & 18 deletions app.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,4 @@
application: toiletevolution
version: 1
runtime: php55
api_version: 1
threadsafe: true
module: default

skip_files:
- ^(.*/)?composer\.(phar|lock|json)$
- logs
- ^\.(bowerrc|editorconfig|gitignore)
- bower.json
- package.json
- polymer.json
tests
.git
runtime: php82

handlers:
- url: /favicon\.ico
Expand All @@ -26,15 +11,18 @@ handlers:
- url: /images
static_dir: public/images

- url: /zxcvbn/dist
static_dir: public/scripts/zxcvbn/dist

- url: /(.*).(html|js|json|css)
static_files: public/\1.\2
upload: public/(.*)\.(html|js|json|css)

- url: /(api|admin|auth)/.*
script: public/index.php
script: auto

- url: /index\.php
script: public/index.php
script: auto

- url: /
static_files: public/index.html
Expand Down
60 changes: 29 additions & 31 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,45 +10,36 @@
"email": "[email protected]"
}
],
"repositories": [
{
"type": "package",
"package": {
"version": "dev-master",
"name": "sizuhiko/slim3-csrf-utilities",
"source": {
"url": "https://github.com/sizuhiko/slim3-csrf-utilities.git",
"type": "git",
"reference": "master"
}
}
}
],
"require": {
"php": ">=5.5.0",
"slim/slim": "^3.1",
"php": ">=8.2.0",
"slim/slim": "^4.12",
"slim/php-view": "^2.0",
"monolog/monolog": "^1.17",
"tomwalder/php-gds": "^2.1",
"tuupola/slim-basic-auth": "^2.0",
"nesbot/carbon": "^1.21",
"league/oauth2-client": "^1.4",
"league/oauth2-google": "^1.0",
"akrabat/rka-slim-session-middleware": "2.0.0-RC1",
"monolog/monolog": "^3.5",
"tomwalder/php-gds": "^6.1",
"tuupola/slim-basic-auth": "^3.3",
"nesbot/carbon": "^2.72",
"league/oauth2-client": "2.7.0",
"league/oauth2-google": "4.0.1",
"akrabat/rka-slim-session-middleware": "^3.0",
"slim/csrf": "^0.7.0",
"sizuhiko/slim3-csrf-utilities": "dev-master",
"justinrainbow/json-schema": "^2.0"
"aurmil/slim3-csrf-utilities": "^1.0",
"justinrainbow/json-schema": "^5.2.12",
"netresearch/jsonmapper": "^4.2",
"google/appengine-php-sdk": "2.2.0",
"slim/psr7": "^1.6",
"php-di/php-di": "^7.0",
"google/cloud-storage": "^1.36",
"google/cloud-datastore": "^1.26"
},
"autoload": {
"psr-4": {
"ToiletEvolution\\": "src/"
}
},
"require-dev": {
"phpunit/phpunit": "^4.8",
"helmich/phpunit-psr7-assert": "^1.1",
"gecko-packages/gecko-memcache-mock": "^2.1",
"google/appengine-php-sdk": "^1.9"
"phpunit/phpunit": "^10.5",
"helmich/phpunit-psr7-assert": "^4.4.0",
"m6web/redis-mock": "^5.6"
},
"autoload-dev": {
"files": [
Expand All @@ -61,6 +52,13 @@
},
"include-path": [
"vendor/google/appengine-php-sdk"
]

],
"scripts": {
"t": "phpunit"
},
"config": {
"allow-plugins": {
"kylekatarnls/update-helper": true
}
}
}
Loading

0 comments on commit 4f3c400

Please sign in to comment.