-
GitHub Actionsのparallelを使用してPHPUnitを並列実行する
開発
こんにちは、フロントエンドエンジニアのやなぎ(@apple_yagi)です。 2026年6月25日にGitHub Actionsに追加されたparallelを利用してPHPUnitを並列実行するようにした結果、CIのtest job全体の実行時間を4分42秒から2分58秒へ約37%削減できました。実行時間は、変更前後でそれぞれ複数回計測した結果から代表的な値になります。 本記事では、GitHub Actionsのparallelを使ってPHPUnitを並列化した方法と、並列化する過程で発生した問題についてご紹介します。 【GitHub Actionsのparallelとは】 GitHub Actionsの... -
Amazon ECS のデプロイをCloudWatch Alarm で自動ロールバックする
開発
こんにちは、PR TIMESでインターンをしている河野拓真です。 今回は、PR TIMESのサービスで一部使用しているAmazon ECS on Fargateに、CloudWatch Alarmと連携した自動ロールバックと、ロールバックに気づくためのSlack通知を導入したので、その仕組みと実際にハマったポイントを紹介します。 【背景】 PR TIMESでは、一部のサービスをAmazon ECS on Fargate上で運用しています。 これまでの運用には課題がありました。ECSのデプロイが確認するのは「新しいタスクが起動し、ヘルスチェックに通ること」までであり... -
PR TIMESはフロントエンドカンファレンス福岡2026に協賛します! #fec_fukuoka
カンファレンス
こんにちは。フロントエンドエンジニアの白濱(@shiraha_maru)です。 PR TIMESは、2026年9月12日(土)に開催される「フロントエンドカンファレンス福岡2026」にGold Sponsorとして協賛いたします。 【フロントエンドカンファレンス福岡2026について】 フロントエンドカンファレンス福岡2026は、Webフロントエンドに関わるさまざまなテーマを扱う技術カンファレンスです。 2019年以来、7年ぶりの開催となる今回は、「未来のフロントエンドと徹底的に向き合う」をテーマに、九州産業大学で開催されます。 開催概要... -
静的アセットの配信URLにバージョンを含めてアップデート時のキャッシュ不整合を防ぐ
開発
こんにちは。フロントエンドエンジニアの白濱(@shiraha_maru)です。 PR TIMESではプレスキット用PDFのサムネイル生成や、FAX原稿用PDFのページ数取得に PDF.js を利用しています。PDF.jsを使ってサムネイル画像を生成する方法については、過去の記事で紹介していますのでご覧ください。 サムネイル画像をPDFの1ページ目から自動生成する PDF.jsを利用するにあたり、Worker用JavaScriptやCMapなどのアセットはアプリケーション本体とは別に静的ファイルとして配信しています。今回は、この pdfjs-dist の静的ア... -
素材ダウンロード負荷軽減のためにApache – PHP から切り離し、Fastly – S3 経由で配信するようにしました
開発
こんにちは。PR TIMESでエンジニアをしている田中 (@Romira915)です。 この記事では、認可をアプリケーション側に残したまま、素材ダウンロード用ZIPの配信をApache・PHPからFastly・S3へ切り出した方法と、実装時に遭遇したキャッシュ制御の問題を紹介します。 【はじめに】 PR TIMESでは、企業が投稿したプレスリリースに含まれる画像を、まとめてZIPでダウンロードできる「素材ダウンロード」という機能を提供しています。 ZIPファイルは一度生成されるとリリースが更新されるまでEC2ローカルに保持され、配信... -
PR TIMESの認証認可を再設計するときに考えたこと
開発
PR TIMESでCTOをやっている金子 (@catatsuy) です。 2023年に、PR TIMESのログインシステムへJWTを導入したことを開発者ブログで紹介しました。 https://developers.prtimes.com/2023/12/26/implemented-login-system-using-jwt/ この記事では、JWTの仕様や移行の進め方など、実装した仕組みを中心に説明しています。一方で、なぜこの構成を選んだのかについては、あまり触れていませんでした。 本記事では、PR TIMESの認証認可を再設計するときに何を考えていたのか、その設計が現在の構成にどうつながっているの... -
Visual Regression TestのスナップショットにWebPを導入し、容量を削減する
開発
こんにちは、フロントエンドエンジニアのやなぎ(@apple_yagi)です。 PR TIMESでは、2023年からPlaywrightを用いたVisual Regression Test(VRT)を運用しています。VRTの運用方法については以下のエントリーで紹介していますので、ぜひあわせてご覧ください。 https://developers.prtimes.com/2024/04/26/visual-regression-test-using-playwright-in-prtimes/ 先日リリースされたPlaywright v1.62.0では、スナップショットの生成・比較を行うtoHaveScreenshotがWebP形式をサポートしました。PR TIMESではVRTの... -
Google API 認証を Service Account キーから WIF に移行した話
未分類
こんにちは!PR TIMES 開発本部のエンジニア、トゥ(codyzard)です。 今回は、AWS 上で動くバッチから利用している複数の Google API の認証を、Service Account キーから WIF(Workload Identity Federation) へ移行した話を紹介します。対象となる API は、BigQuery、Retail API、Google Analytics Data API(以下、GA4 Data API)です。 このうち、GA4 Data API の移行では、次の2つの理由により追加対応が必要になりました。 Google Analytics 固有の権限モデルにより、Service Account impersonation が必... -
PHP Conference Japan 2026 に協賛・登壇しました! #phpcon
カンファレンス
こんにちは!2026年新卒エンジニアの小尾(@obizip)と森澤(@ggg_glasspo)です。 2026年7月20日に開催されたPHP Conference Japan 2026に、PR TIMESはゴールドスポンサーとして協賛し、ブースを出展しました。さらに当日は、弊社社員の河瀬(@shogogg)によるLT登壇もありました。 今回は、技術カンファレンス初参加の私たち二人が、ブース企画「PHP 8.5秒チャレンジ」や、制作したポスターとチラシ、河瀨によるLT登壇について紹介します。 【PHP Conference Japan 2026について】 PHP Conference Japanは、日本... -
PR TIMES は PHP Conference Japan 2026 に協賛・登壇します!
カンファレンス
こんにちは。バックエンドエンジニアの筒井 (@tsuttsun_wind)です。PR TIMESは、PHP Conference Japan 2026 にゴールドスポンサーとして協賛します。 【PHP Conference について】 PHP Conference は、国内の業界トップランナーによるPHP最新動向や、コアテクノロジーからPHP初心者向けセッションまで、40以上のセッションを届けるイベントです。 これからPHPをはじめる方から、さらにPHPを極めていきたい方まで幅広く楽しめるイベントになるようなプログラムが用意されています。 https://phpcon.php.gr.jp/202...
