Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release RC #642

Merged
merged 6 commits into from
Nov 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/auto-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,9 @@ jobs:
<summary>差分の内容</summary>

```

${{ env.git_diff }}

```

</details>
Expand Down
46 changes: 43 additions & 3 deletions .github/workflows/release-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
- 'release'

jobs:
# TODO: かつてはビルドされた JavaScript ファイルがリポジトリに含まれておりそのチェックにこのジョブが使われていたが、現在はそれらのファイルはリポジトリに含まれていないため、このジョブは削除したほうがよいかもしれない
check-artifacts:
name: Check artifacts

Expand All @@ -25,12 +26,51 @@ jobs:

- run: yarn

# 必要のない web-server のビルドも行われる。web-server のみを除外するとその除外処理でミスが生じる余地があるため、web-server も含めてまとめてビルドしている。
- name: Generate dist
run: yarn build
- run: yarn build

- name: Clean CRLF
run: git config --local core.autocrlf input && git add . && git reset

- name: Fail if not all the artifacts are OK
uses: numtide/clean-git-action@v2

comment-git-tags:
name: Comment git tags
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4

- name: Use Node 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
cache: yarn

- run: yarn

- run: yarn build

- run: yarn run gen-git-tags
working-directory: ./apps/api-server

- name: set git tags to GITHUB_ENV
run: |
tags_txt=$(cat ./apps/api-server/git-tags.txt)
echo "tags_txt<<EOF" >> $GITHUB_ENV
echo "$tags_txt" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV

- name: Add comment
run: gh issue comment "$PR_NUMBER" --body "$BODY"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
PR_NUMBER: ${{ github.event.number }}
BODY: >
リポジトリの管理者へ: PR をマージした後に Release ブランチにセットするタグの名前の候補は下のとおりです。`*` の部分は自分で変更してください。

```

${{ env.tags_txt }}

```
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,10 @@ jobs:
- run: yarn build

- name: mv dist directory
run: mv ./apps/web-server/dist ./dist
run: mv ./apps/web-server/dist ./flocon_web_server

- name: Create flocon_web_server.zip
run: zip -r ${GITHUB_WORKSPACE}/flocon_web_server.zip ./dist
run: zip -r ${GITHUB_WORKSPACE}/flocon_web_server.zip ./flocon_web_server

- name: Generate Dockerfile
run: yarn run gen-flyio-dockerfile
Expand Down
1 change: 1 addition & 0 deletions apps/api-server/.gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/.env.local
/bcrypt-hash.txt
/flyio.Dockerfile
/git-tags.txt
# テストを実行すると./__uploader_for_tests__ディレクトリに画像ファイルが生成される。もしアップローダーのテストが失敗するとこれらが残ることがあるため、除外している。
/__uploader_for_tests__
3 changes: 3 additions & 0 deletions apps/api-server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"dev": "node dist/index.js",
"gen": "run-s gen:schema gen:codegen",
"gen-flyio-dockerfile": "node dist/run-generateFlyioDockerfile.js",
"gen-git-tags": "node dist/run-generateGitTagsTxt.js",
"gen:codegen": "graphql-codegen --config codegen.yml",
"gen:schema": "node dist/run-buildSchemaSync.js",
"lint": "eslint \"**/*.ts\" --cache",
Expand Down Expand Up @@ -60,6 +61,7 @@
"check-disk-space": "^3.0.1",
"class-validator": "^0.14.0",
"color": "^4.0.1",
"dayjs": "^1.11.13",
"dotenv": "^16.0.0",
"dotenv-expand": "^8.0.0",
"es-toolkit": "^1.25.2",
Expand Down Expand Up @@ -104,6 +106,7 @@
"@graphql-codegen/typed-document-node": "5.0.11",
"@graphql-codegen/typescript": "4.1.1",
"@graphql-codegen/typescript-operations": "4.3.1",
"@rollup/plugin-json": "6.1.0",
"@rollup/plugin-typescript": "11.1.6",
"@types/jest": "29.5.14",
"@types/node-fetch": "2.6.11",
Expand Down
2 changes: 2 additions & 0 deletions apps/api-server/rollup.config.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
const typescript = require('@rollup/plugin-typescript');
const multiInput = require('rollup-plugin-multi-input');
const json = require('@rollup/plugin-json');

const external = [
// https://rollupjs.org/guide/en/#importing-packagejson
Expand Down Expand Up @@ -29,6 +30,7 @@ module.exports = [
declarationMap: false,
sourceMap: true,
}),
json(),
],
external,
},
Expand Down
2 changes: 1 addition & 1 deletion apps/api-server/src/VERSION.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ export const VERSION = new SemVer({
major: 0,
minor: 7,
patch: 16,
prerelease: { type: 'rc', version: 2 },
prerelease: { type: 'rc', version: 3 },
});
2 changes: 1 addition & 1 deletion apps/api-server/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { authToken } from '@flocon-trpg/core';
import { loggerRef } from '@flocon-trpg/utils';
import { Result } from '@kizahasi/result';
import admin from 'firebase-admin';
import { Context } from 'graphql-ws/lib/server';
import { Context } from 'graphql-ws';
import { VERSION } from './VERSION';
import { buildSchema } from './buildSchema';
import { createORM } from './config/createORM';
Expand Down
32 changes: 32 additions & 0 deletions apps/api-server/src/run-generateGitTagsTxt.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import dayjs from 'dayjs';
import timezone from 'dayjs/plugin/timezone';
import utc from 'dayjs/plugin/utc';
import fs from 'fs-extra';
import WebPackageJson from '../../web-server/package.json';
import { VERSION } from './VERSION';

// timezone プラグインを使う場合は utc プラグインも必要らしい - https://day.js.org/docs/en/timezone/timezone
dayjs.extend(utc);
dayjs.extend(timezone);

const main = (): void => {
// API サーバーのバージョンは @flocon-trpg/api-server の TypeScript コードから取得する必要がある一方で、それ以外のバージョンは TypeScript コードを必要としない。そのため、これは API サーバー以外のタグ名も全て生成するスクリプトではあるが、@flocon-trpg/api-server 内に置いている。

const version = VERSION.toString();
const apiServerTag = `api/v${version}`;
const webServerTag = `web/v${WebPackageJson.version}`;

// GitHub Actions などで実行されることがあるため、明示的にタイムゾーンを指定している
const date = dayjs().tz('Asia/Tokyo').format('YY.M.D');

// * の部分は同じ日時に複数のタグがあるときに区別するのが目的の数値。この部分は自動的には生成できないので自分で手動で入力する
const mainTag = `v${date}.*`;

const txt = `Main: ${mainTag}
Web Server: ${webServerTag}
API Server: ${apiServerTag}`;

fs.writeFileSync('./git-tags.txt', txt);
};

main();
2 changes: 1 addition & 1 deletion apps/api-server/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// Node 14 で推奨される設定を使用している
// https://github.com/microsoft/TypeScript/wiki/Node-Target-Mapping#node-14

"resolveJsonModule": false,
"resolveJsonModule": true,
"target": "ES2020",
"module": "ES2015",
"sourceMap": true,
Expand Down
2 changes: 1 addition & 1 deletion apps/web-server/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@flocon-trpg/web-server",
"version": "0.9.0-rc.2",
"version": "0.9.0-rc.3",
"private": true,
"type": "module",
"scripts": {
Expand Down
5 changes: 0 additions & 5 deletions apps/web-server/src/components/pages/IndexPage/IndexPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -122,11 +122,6 @@ export const IndexPage: React.FC = () => {
</div>
<Typography.Title level={3}>動作環境</Typography.Title>
<ul>
<li>
{
'ブラウザはChrome系(Edgeを含む)かFirefoxを推奨します。Internet Explorerではおそらく動作しません。Safariでは、概ね正常に動きますが、メッセージのスクロールでカクつくかもしれません(要調査)。'
}
</li>
<li>
{
'現時点ではスマートフォンには対応しておりません。動作はしますが、快適にご利用いただけない可能性があります。'
Expand Down
8 changes: 3 additions & 5 deletions websites/docs/docs/server/tutorial/web_server.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,7 @@ Netlify は、静的な Web サイトを無料で作成できるサービスで

[リリース一覧](https://github.com/flocon-trpg/servers/releases)からダウンロードしたいバージョンを探します。どのバージョンを選ぶべきかよくわからない場合は、基本的には Pre-release が付いてないものの中から最新のバージョンを選べば大丈夫です。

選んだバージョンの下の方に`flocon_web_server.zip`のリンクがあるので、それをダウンロードしてファイルを展開します。

展開すると`out`という名前のフォルダが作成されます。その中に`env.txt`というテキストファイルがありますが、このファイルに Web サーバーの設定を記述する必要があります。[Web サーバー公式設定ツール](https://tools.flocon.app/web-server) を利用して、`env.txt`を編集してください。
選んだバージョンの下の方に`flocon_web_server.zip`のリンクがあるので、それをダウンロードしてファイルを展開します。その中に`env.txt`というテキストファイルがありますが、このファイルに Web サーバーの設定を記述する必要があります。[Web サーバー公式設定ツール](https://tools.flocon.app/web-server) を利用して、`env.txt`を編集してください。

:::info
Firebase Storage 版アップローダーを有効化する場合は、あわせて[こちらの解説](/docs/server/details/uploader/firebase_storage)から Firebase Storage の設定を行う必要があります。
Expand All @@ -29,12 +27,12 @@ Firebase Storage 版アップローダーを有効化する場合は、あわせ

まずは[Netlify のサイト](https://www.netlify.com/)からアカウントを作成します。

アカウントの作成が完了したら、下のような画面になります。「Drag and drop your site output folder here」のところに out フォルダをドラッグ&ドロップします。
アカウントの作成が完了したら、下のような画面になります。「Drag and drop your site output folder here」のところにファイルの入ったフォルダをドラッグ&ドロップします。

![netlify1.png](/img/docs/netlify/1.png)

:::danger
ドラッグ&ドロップしたフォルダの中身はほぼ全て[^3]がそのままの形でウェブサイト上に公開されます。そのため、out フォルダ内に機密情報などに関わるデータを含めないように気をつけてください。
ドラッグ&ドロップしたフォルダの中身はほぼ全て[^3]がそのままの形でウェブサイト上に公開されます。そのため、フォルダ内に機密情報などに関わるデータを含めないように気をつけてください。
:::

:::info
Expand Down
18 changes: 17 additions & 1 deletion yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4254,6 +4254,7 @@ __metadata:
"@mikro-orm/mysql": "npm:^6.3.12"
"@mikro-orm/postgresql": "npm:^6.3.12"
"@mikro-orm/sqlite": "npm:^6.3.12"
"@rollup/plugin-json": "npm:6.1.0"
"@rollup/plugin-typescript": "npm:11.1.6"
"@types/bcrypt": "npm:^5.0.0"
"@types/color": "npm:^3.0.2"
Expand All @@ -4276,6 +4277,7 @@ __metadata:
check-disk-space: "npm:^3.0.1"
class-validator: "npm:^0.14.0"
color: "npm:^4.0.1"
dayjs: "npm:^1.11.13"
dotenv: "npm:^16.0.0"
dotenv-expand: "npm:^8.0.0"
es-toolkit: "npm:^1.25.2"
Expand Down Expand Up @@ -6848,6 +6850,20 @@ __metadata:
languageName: node
linkType: hard

"@rollup/plugin-json@npm:6.1.0":
version: 6.1.0
resolution: "@rollup/plugin-json@npm:6.1.0"
dependencies:
"@rollup/pluginutils": "npm:^5.1.0"
peerDependencies:
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
peerDependenciesMeta:
rollup:
optional: true
checksum: 10/cc018d20c80242a2b8b44fae61a968049cf31bb8406218187cc7cda35747616594e79452dd65722e7da6dd825b392e90d4599d43cd4461a02fefa2865945164e
languageName: node
linkType: hard

"@rollup/plugin-typescript@npm:11.1.6":
version: 11.1.6
resolution: "@rollup/plugin-typescript@npm:11.1.6"
Expand Down Expand Up @@ -12412,7 +12428,7 @@ __metadata:
languageName: node
linkType: hard

"dayjs@npm:^1.11.11, dayjs@npm:^1.11.7":
"dayjs@npm:^1.11.11, dayjs@npm:^1.11.13, dayjs@npm:^1.11.7":
version: 1.11.13
resolution: "dayjs@npm:1.11.13"
checksum: 10/7374d63ab179b8d909a95e74790def25c8986e329ae989840bacb8b1888be116d20e1c4eee75a69ea0dfbae13172efc50ef85619d304ee7ca3c01d5878b704f5
Expand Down
Loading