「CircleCI」に関する日記

GitHub Actions

動くようになりました。
Composerのバリデーションは神経質すぎるところがあるので実行しないことにして、本当にやりたい自動テストだけにしました。
phpdbg使えなかったけど、普通にPHPUnitを動かすだけでカバレッジは取れました。
アーティファクトがばらばらのファイルじゃなくてZIPアーカイブしかなさそうなので、HTML出力したカバレッジレポートを見て回ることはできないけど、まあ手元でZIP展開すれば見られるのでこれはまあOK。
あとは…そう、もういらなくなったCircleCIとの連携を切るだけ。

GitHub Actions

CircleCIの自動テスト復旧より、GitHub Actionsに挑戦してみました。
今のところ、PHPのインストールはできているけど、Composerのチェックで引っかかって自動テスト本体までたどり着いていないようです。

アンパンマンDBとCircleCI

アンパンマンDB(記事更新)

来週の放送情報。
カレー餃子ができるのか、餃子カレーができるのか。

CircleCI

ここTGWSの自動テストが動かなくなりました。
自動テスト自体の問題ではなく、セキュリティ関連で何か拒否されてテストが始まってすらいないっぽいです。
どうせ修正が必要になるなら、せっかくだしGitHub Actionsに移行してもいいかもなァ。

CircleCIとゲーム記

CircleCI

CircleCI security alert: Rotate any secrets stored in CircleCI
セキュリティで何かあったらしく、シークレットを全部作り直す必要があるそうです。
うちで使っているのはTGWSの自動テストだけなので、すぐ対応完了しました。

ゲーム記

ドラクエシリーズあたりまで作業完了。
タグのページの文章も考えているので作業に時間がかかりますが、だいぶそろってきたので今後はもうちょっと速く作業できそうです。

アンパンマンDBとCircleCI

アンパンマンDB(システム)

記事個別編集の新バージョンの基礎部分が完成。
シンプルな編集項目は編集・保存も対応していて、後は複雑な編集項目と追加機能を足していければよし。
一括編集との共通化も実現しています。

CircleCI

[CircleCI Security Alert] Warning: Phishing attempt for login credentials - Announcements - CircleCI Discuss
なんかテスト落ちてるなーと思ってCircleCI見に行ったら、CircleCIを騙るフィッシング詐欺メールが出回っているとの情報が。
よく似たドメインに誘導して認証情報を詐取するそうです。

ちなみに、テストが落ちた件はこのフィッシング詐欺とは無関係で、なぜか始まりもせず失敗していたので、原因は不明です。
時間が解決してくれるのならいいけれど…。

PHP8.1

とりあえずエラーが取れたので、CIが落ちる方を暫定対応。
落ちるテストをしなくしたというだけの、本当に解決にならない対応なんですけどね。
テストしなくなった対象のコードを使わなくする方向で根本対応を検討中です。

PHP8.1

開発環境でもテストプログラム自体が落ちる件を再現できました。
どうやら、アンパンマンDBの古いコードのカバレッジを取ろうとしていると、落ちるようです。
まあ、新たに開発することがない以上、継続的にテストをしても仕方がないと言えばないのですがね…ただテストをなくして落ちなくするより、古いコード自体をなくしてそもそもテスト不要にするのが正攻法だと思われます。
放置案件になりかけてる新管理画面にいよいよ着手せねば…。

CircleCI

そろそろPHPのバージョンを上げたくて、その前にCircleCIの自動テストでバージョンを上げたときの挙動を確認したくて、CircleCIのドキュメントを久々に見たら…
Announcing our next-generation convenience images: smaller, faster, more deterministic - CircleCI
要は、Dockerの新しいイメージができてるので、今後はそれを使えということ。
とりあえず、こうかな?って感じで試してみたけど、今のところうまくいっていません。

PHPのcurl(Today I Learned)

先日のFlaky Testの件、本来安定しているはずの状況でも環境問題で不安定化してしまうものがありました。
開発環境でも本番環境でも引けるのに、テスト環境(CircleCI)でだけ何故かDNSを引けないことがあったのです。
それを解決するには、自前でDNSを解決するしか、ってことで、これ。

【php】curl関数でresolveオプションを指定して名前解決を操作する at softelメモ

curl_setopt($ch, CURLOPT_RESOLVE, array('ホスト名:ポート番号:宛先のIPアドレス'));
の形式でIPアドレスを指定できるというやつです。

その前に、本当にDNSのせいなのかも確認しておきたいところですが、何せ不安定なもので、「失敗の様子を確認したい時に限って失敗してくれない」ということもありうるんですよね…。

.NET 5

VPSの話の続きなんですが、もはやサーバーとは関係ない内容です。
以前は.NET Core 3.1を使っていたんですが、今回.NET 5に上げたんですね。
サーバープログラムのターゲットフレームワークを5に上げるのは当然なんですが、それを参照しているテストプログラムも5に上げる必要があります。
そこまではやっていたんです。
テスト環境が使うDockerイメージも5に合わせたものに変えなきゃいけないのを忘れてました。
ここらへんに書いてありますな。

CircleCI

なんかDockerの件、CircleCIに関しては無制限になったみたいですね。
せっかくアカウント作ったから私は引き続きそっちを使うけど。

CircleCI

なにやらDockerHubで11月から制限がきつくなる模様。
それで、CircleCIで使うときにその制限を回避する方法が、メールで送られてきました。
内容としては、この記事です。
ユーザー登録してIDとパスワードで認証しろってことですね。

アンパンマンDBとTGWSAdminとCircleCI

アンパンマンDB

一時保存の挙動を改善。
これまでは、プレビューしただけでも一時保存が消えてしまって、途中まで書いたやつの続き書こうかな→やっぱやーめた、で、書きかけのが消し飛んでいたのですが、編集を確定するか別の一時保存を作るまでは消えないようになりました。

TGWSAdmin

リファラチェックの結果がたまり過ぎていたので自動整理の仕組みを作成。
一年前にチェックした結果とか残してても仕方ないですからね。

CircleCI

作業領域にRAMディスク使えるらしいので試してみました。
確かに普通のディスクを使うよりは速くなるけど…一番のボトルネックがライブラリのダウンロードなので、期待したほど劇的な高速化はしませんでしたね。
テスト項目が増えてテスト自体に時間がかかるようになってきたら、特にファイル読み書き系のテストが増えてきたら、効果が上がってくることになるかな。

CircleCI

使っていたコンテナが古くなってなくなっていてビルドが通らなくなっていました。
現存するコンテナを使うようにして、ビルド通すようにしました。

CircleCI


いろいろ試行錯誤して、なんとかビルド成功までこぎつけました。
講座サイトとかも見ましたが、最終的に最も役立ったのはやっぱり公式のドキュメントでしたね。
Dockerコンテナに割と何でもかんでも入れられそうだから、公式サポート外だけど、.NET Coreのプロジェクトも案外いけるかも?