diff --git a/README.md b/README.md index 68b2c27b..06a548b8 100644 --- a/README.md +++ b/README.md @@ -21,12 +21,7 @@ ictsc-outlands/ │ ├── charts/ (K8デプロイ用Helmチャート) │ -└── Makefile (全体共通のタスク定義) +└── Taskfile (全体共通のタスク定義) ``` 各フォルダ以下に関しては、それぞれのフォルダにある`README.md`を参照して下さい。 - -## 開発の始め方 - -`sh init.sh`をすると、`task`のインストールを要求されるのでインストールする。 -その後は、`task`コマンドで各種操作を行う。 diff --git a/Taskfile.yaml b/Taskfile.yaml index a64d8a57..3d7a5a68 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -1,101 +1,20 @@ version: 3 - -# タスク定義の順番 -# -# 1. -# desc -# -# 2. -# internal -# dir -# silent -# -# 3. -# vars -# status / sources / generates / methods / preconditions -# deps -# -# 4. -# cmds - tasks: - check-binary: - desc: 指定されたバイナリがインストールされているか確認 - internal: true - silent: true - cmds: - - | - if ! (type {{.BINARY}} >/dev/null 2>&1); then - echo "下記公式ドキュメントを参考に、{{.BINARY}}をインストールした後、もう一度実行してください" - echo {{.INSTALL_DOC}} - exit 1 - fi - - init: - desc: ワークスペースを初期化 - cmds: - - cp .vscode/settings-sample.json .vscode/settings.json - - cp backend/.vscode/settings-sample.json backend/.vscode/settings.json - - init-buf: - desc: bufの初期化 - internal: true - deps: - - task: check-binary - vars: - BINARY: buf - INSTALL_DOC: https://buf.build/docs/installation - - init-oapi: - desc: OpenAPI Generatorの初期化 - internal: true - deps: - - task: check-binary - vars: - BINARY: go - INSTALL_DOC: https://go.dev/doc/install - cmds: - - go install github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen@v2.4.1 - generate: desc: 自動生成ファイルをすべて生成 cmds: - - rm -rf backend/internal/proto - - task: generate-buf - - task: generate-oapi + - task: generate-backend + - task: generate-frontend - generate-buf: - desc: Protobuf & Connectの自動生成ファイルを生成 + generate-backend: internal: true - dir: proto - deps: - - init-buf + dir: backend cmds: - - buf generate --template buf.gen-backend.yaml + - go generate -x ./... - generate-oapi: - desc: OpenAPIの自動生成ファイルを生成 + generate-frontend: internal: true - dir: proto - deps: - - init-oapi - cmds: - - for: ["admin", "contestant"] - cmd: |- - mkdir -p ../backend/internal/proto/{{ .ITEM }}/v1/v1oapi - oapi-codegen -package v1oapi -generate chi-server {{ .ITEM }}/v1/file.yaml \ - > ../backend/internal/proto/{{ .ITEM }}/v1/v1oapi/file-server.oapi.go - oapi-codegen -package v1oapi -generate client {{ .ITEM }}/v1/file.yaml \ - > ../backend/internal/proto/{{ .ITEM }}/v1/v1oapi/file-client.oapi.go - - up: - desc: ローカル開発環境を立ち上げる - dir: dev/docker - cmds: - - docker compose up --build -d - - down: - desc: ローカル開発環境を終了する - dir: dev/docker + dir: frontend cmds: - - docker compose down + - pnpm install + - pnpm run --recursive --parallel --aggregate-output generate diff --git a/dev/README.md b/dev/README.md deleted file mode 100644 index 774d49c0..00000000 --- a/dev/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# 開発用ツール・設定 - -- [cspell](./cspell/README.md) diff --git a/dev/docker/compose.yaml b/dev/docker/compose.yaml deleted file mode 100644 index 8766562a..00000000 --- a/dev/docker/compose.yaml +++ /dev/null @@ -1,51 +0,0 @@ -services: - anita: - container_name: ictsc-outlands_anita - build: - context: ../../backend - target: anita - image: anita - restart: always - environment: - DEV: "true" - entrypoint: ./anita run - expose: - - 8080 - depends_on: - mysql: - condition: service_healthy - - mysql: - container_name: ictsc-outlands_mysql - image: mysql:9.1.0 - restart: always - environment: - MYSQL_ROOT_PASSWORD: password - expose: - - 3306 - volumes: - - mysql:/var/lib/mysql - - ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro - healthcheck: - test: mysql --user=root --password=password --execute "SHOW DATABASES;" - interval: 1s - timeout: 10s - retries: 60 - - phpmyadmin: - container_name: ictsc-outlands_phpmyadmin - image: phpmyadmin/phpmyadmin:5.2.1 - restart: always - environment: - - PMA_ARBITRARY=1 - - PMA_HOST=mysql - - PMA_USER=root - - PMA_PASSWORD=password - ports: - - 2420:80 - depends_on: - mysql: - condition: service_healthy - -volumes: - mysql: diff --git a/dev/docker/init.sql b/dev/docker/init.sql deleted file mode 100644 index 4f2cfbfe..00000000 --- a/dev/docker/init.sql +++ /dev/null @@ -1 +0,0 @@ -CREATE DATABASE IF NOT EXISTS `anita`; diff --git a/init.sh b/init.sh deleted file mode 100644 index 08414ca6..00000000 --- a/init.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -if ! (type task >/dev/null 2>&1); then - echo "下記公式ドキュメントを参考に、taskをインストールした後、もう一度init.shを実行してください" - echo "https://taskfile.dev/installation/" -fi - -task init diff --git a/proto/README.md b/proto/README.md new file mode 100644 index 00000000..763e9372 --- /dev/null +++ b/proto/README.md @@ -0,0 +1,24 @@ +# Protobuf + +フロントエンドとバックエンド間で共有される API 定義 + +## 構成 + +- `admin/v1`: 運営用 API +- `contestant/v1`: 競技者用 API + +## 開発方法 + +[Buf](https://buf.build/) を使っています。[Buf CLI のインストール手順](https://buf.build/docs/installation/)に従ってインストールしてください。 + +### フォーマット + +```console +$ buf format -w +``` + +### リント + +```console +$ buf lint +```