こんな感じのメソッドを作って、登録済みのクラス全体をチェックかける仕組みを構築してみました。

ClassMethod CheckAllClass()
{
    Do $SYSTEM.OBJ.GetClassList(.classes, "/application=1/generated=0")
    Set class = ""
    For {
        Set class = $ORDER(classes(class))
        If (class = "") {
            Quit
        }

        If ($EXTRACT(class,1,4) = "csp.") {
            Continue
        }

        Write !,"****************コンパイルチェック開始****************",!
        Write "TARGET : "_class,!
        #; 各種チェッククラスの実行。
        Set hasErr = '##class(AbstractMethodChecker).%New().IsCorrectDefine(class)
        Set hasErr = hasErr + '##class(ClassNamingChecker).%New().IsCorrectDefine(class)
        Set hasErr = hasErr + '##class(DefineNamingChecker).%New().IsCorrectDefine(class)
        Set hasErr = hasErr + '##class(MethodImplChecker).%New().IsCorrectImpl(class)

        Write "****************コンパイルチェック完了****************",!

        If (hasErr > 0) {
            Write "コンパイルエラーがあります。",!
        }
    }
}

Minamoto さん
こんにちは。ご回答いただきありがとうございます!

> しかしImportDirなどObjectScriptのメソッドにはこのような機能がないため、SourceControlの処理は実行されません。
やはりそうでしたか。私の方でもそもそも仕組みがないのではないかと疑っていました。

確かにExport前にチェックできていれば問題はないのですが、
チェック観点を追加した際に水平展開的に全体に仕掛けようと思った際に
どうやろうかなぁ、と試行錯誤していた状態です。

もう少しやり方は検討させていただきますが、本課題はいったんクローズさせていただきます。

Minamotoさん

ご回答いただきありがとうございます!
私が求めていた形はUDL形式と言うんですね。無知でした。
頂いた内容で進めていこうと思います。

> Create tableで作成されたタイミングでExportということに関しては、
> 現状、タスクで定期的にクラスをサーチするというベタな方法しか思いつきません。。。
そうですよね。こちらでもこのやり方で実装しようと思っています。

全てのコードを外だししてGIT管理したいが、IRIS内で自動生成された
ファイルたちをどうやって楽に取得するかを考えておりました。

疑問点は解消されましたので、クローズさせていただきます。

解決策に書いた以上のことはあまり何もしてないのですが、
buildspec.ymlの内容を転記させていただきます。cheeky

  build:
    commands:
      - mkdir -p /user/local/work
      - cd ..
      - mv * /user/local/work
      - cd /user/local/work
      - chmod -R 777 /user/local/work
      - iris start IRIS
      - su - irisowner -c "iris terminal IRIS \"##CLASS(%SYSTEM.OBJ).ImportDir(\\\"/user/local/work\\\",\\\"*.cls;*.mac;*.int;*.inc;*.dfi\\\",\\\"ck\\\",,1)\" " | tee result.txt
      - find result.txt | xargs grep -n "error" | wc -l
      - |
         if find result.txt | xargs grep -n "error" | wc -l >0; then
             false;
         fi

Iwamoto さん

ご連絡いただきありがとうございます。
docker起動時にユーザ指定できるのは知りませんでした!
まだまだいろいろなことができそうなので、こちらでも触ってみるようにします。

自己解決しました! 以下のように実行することで、irisownerのユーザでIRIS内の命令を直接実行できるようになりました。

su - irisowner -c "iris terminal IRIS \"##CLASS(%SYSTEM.OBJ).ImportDir(\\\"参照パス\\\",\\\"*.cls;*.mac;*.int;*.inc;*.dfi\\\",\\\"ck\\\",,1)\" "

一旦問題は解消されたので課題は閉じさせていただこうと思うのですが、 Codebuildの使い方について他にベストプラクティス等あれば 情報いただけますと幸いです。

Minamoto さん

Alertでログが取れそうなことが確認できました!ありがとうございます。
ただ、ParseOnlyをTrueにするとVer 2020.1ではやはり通知が来ていなさそうなので、
別途サポートに問い合わせるようにします。

Minamoto さん

ご回答いただきありがとうございます!
Ens.Alert機能自体あまり利用したことがなかったため、
確認に時間がかかっているところとなります。

RecordMap読み込みにおいてはParseOnlyをTrueにしてるのですが、
この時にアラートが飛んできていないような気がしていて、その点の確認中です。
解消しましたら改めてご連絡させて頂きます!

Kaminakaさん、こんにちは。

ご回答ありがとうございます!

非活動タイムアウトとか標準の仕組みで上手く作成できないかな、

とはいろいろ考えていたのですが、やっぱりその方法がよさそうですね。

一度その方針で進めてみます!有難うございました!