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

✨ stagingブランチを設定する事でstaging環境でデプロイされるように #2488

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

pikachu0310
Copy link
Contributor

ステージング環境を自由に立ててデバッグするための仮案(とりあえずの実装)

@pikachu0310 pikachu0310 enabled auto-merge July 24, 2024 02:16
@hijiki51
Copy link
Member

https://github.com/traPtitech/traQ/blob/master/.github/workflows/master.yml#L6

これここに一行 staging 追加するだけでいいと思う(これコピペしてるんだっけ、目で差分が取れん)

@hijiki51
Copy link
Member

タグ変えてるのか(というかmaster固定なのか)

@pikachu0310
Copy link
Contributor Author

#2488 (comment)
これでもアリ (こちらの方が健全だと思われるのでこっちにしようかな?

.github/workflows/master.yml Outdated Show resolved Hide resolved
if: ${{ github.event.inputs.commit != '' }}
run: echo "TRAQ_REVISION=${{ github.event.inputs.commit }}" >> $GITHUB_ENV
- name: Set TRAQ_REVISION env (fallback)
if: ${{ github.event.inputs.commit == '' }}
run: echo "TRAQ_REVISION=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(下の方)イメージタグは"master"固定で大丈夫ですか?
(わかりやすさ的に)

@@ -4,6 +4,15 @@ on:
push:
branches:
- master
workflow_dispatch:
inputs:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ブランチ指定で動かすのは特に設定なしでできます

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

workflow_dispatch:
だけでも良さそうですが、説明とデフォルト付けた方が良いかなと思うので残しておこうと思ってます。

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

流石にデフォルトはレポジトリのデフォルトブランチになるんじゃ

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

これたぶんpikachuが思ってる挙動と違って、このデフォルトであるドロップダウンの下にinputがもう一つ生えてそこにブランチ入力することになります

ドロップダウンのデフォルトはレポジトリのデフォルトブランチです

image

ここのDry-runにブランチ名を入力することになる

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

なるほど、なら workflow_dispatch: だけで良さそうですね。ありがとうございます。


env:
IMAGE_NAME: traq
IMAGE_TAG: master
IMAGE_TAG: ${{ github.event.inputs.branch || 'master' }}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

固定はしたくないなら、デプロイスクリプトもcomposeの中のイメージ名書き換えるようにしましょう

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stagingで固定しちゃおうと思います

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ならデプロイスクリプト側もmaster参照からstaging参照にする必要がありますね
作業忘れないようにしてください

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

正直イマイチ方針がよく分かってないのですが、以下の流れで良いでしょうか?

デプロイスクリプトは → https://git.trap.jp/SysAd/tokyotech.org/src/branch/master/roles/traq/files/deploy.sh です。
このスクリプトは、引数でtraq-backendを受け取り、 https://git.trap.jp/SysAd/tokyotech.org/src/branch/master/roles/traq/templates/docker-compose.yml.j2 に記述されているコンテナをpullして起動する。

なので、

  traq-backend:
    image: ghcr.io/traptitech/traq:latest

となっているところを、

  traq-backend:
    image: ghcr.io/traptitech/traq:staging

に変更する。(traq-frontendに対しても同等の事を行う? 他の箇所にも影響が出そうで怖い)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

それは本番の方じゃないですか?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

あ、確かにそうかもです。
traQ/compose.yaml の方を変更すればいいんですかね?(traQのレポジトリに deploy.sh が見当たらなくて...)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

これはm011に繋いでいるはずです

run: ssh -o LogLevel=QUIET -t ${{ secrets.STAGING_DEPLOY_USER }}@${{ secrets.STAGING_DEPLOY_HOST }} "sudo sh /srv/traq/deploy.sh traq-backend"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(stagingで固定するなら時すでに遅しで使わなそうだけど) git tagからimage tagを生成するはこういうのがあるらしい
https://github.com/docker/metadata-action

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants