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
Open
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
17 changes: 14 additions & 3 deletions .github/workflows/master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,27 @@ 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: だけで良さそうですね。ありがとうございます。

branch:
description: 'Branch to deploy'
required: true
default: 'master'

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


jobs:
image:
name: Build Docker Image
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.branch || 'master' }}
- name: Set TRAQ_VERSION env
run: echo "TRAQ_VERSION=master-SNAPSHOT" >> $GITHUB_ENV
run: echo "TRAQ_VERSION=${{ github.event.inputs.branch || 'master' }}-SNAPSHOT" >> $GITHUB_ENV
- name: Set TRAQ_REVISION env
run: echo "TRAQ_REVISION=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
- name: Set up QEMU
Expand Down Expand Up @@ -44,13 +52,16 @@ jobs:
TRAQ_VERSION=${{ env.TRAQ_VERSION }}
TRAQ_REVISION=${{ env.TRAQ_REVISION }}
tags: |
ghcr.io/traptitech/${{ env.IMAGE_NAME }}:master
ghcr.io/traptitech/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}

scan:
name: Scan Image Vulnerability
runs-on: ubuntu-latest
needs: [image]
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.branch || 'master' }}
- name: Pull docker image
run: docker pull ghcr.io/traptitech/${IMAGE_NAME}:${IMAGE_TAG}
- name: Container image scan
Expand Down
Loading