GitHubのメインブランチへのプッシュをトリガーとして、Terraformを使用してS3バケットにソースコードを自動的にコピーするAWS CodePipelineを構築しました。Code ConnectionsとCodeStar Connectionsの違いに伴うハマりどころや、GitHubとの連携設定の手順、さらに個人での利用を考慮したCodePipelineとGitHub Actionsの比較について解説します。 はじめに DVAの勉強してたら、AWSのCI/CDができるCodePipelineがやたら出てきたので触ってみた。最初の連携のところが結構ハマる部分が多かった。 作るものは、GitHubへのメインブランチへのPushをトリガーとしてS3バケットにソースコードをコピーするだけのもの。AWSのソース管理サービスにCode Commitがあるが、2024/12現在新規受付を停止
AWS CodeBuild の UserGuide Self-hostedGitHub Actions runners inAWS CodeBuild1 に記載がある、AWS CodeBuild をGitHub Actions の Self-hosted Runner として使用可能な機能を試します。 この記事は2024-05-15に投稿した記事へ加筆したものとなります。 また、この記事の内容はゆめみ大技林 '24 (2)に掲載しています。 2024-09-20 時点での内容ですが2024-12-03時点でも大きな変化はありません。最新情報は上記ドキュメントを参照ください。 実際に使用したいとなったら自身の環境で動作確認してください。 基本的な使い方AWS CodeBuild 上でGitHub に接続設定したプロジェクトを用意し、その名前をGitHub Actions の y
AI & MLLearn about artificial intelligence andmachine learning across theGitHub ecosystem and the wider industry. GenerativeAILearn how tobuild with generativeAI.GitHub CopilotChange how you work withGitHub Copilot. LLMsEverything developers need to know about LLMs.Machine learningMachine learning tips, tricks, and best practices. HowAI code generation worksExplore the capabilities and be
前置き tl;dr; 解説 動的にmatrixを生成する JSON文字列からmatrixを生成する 前置きGitHub Actionsではworkflowのyamlファイルに下記のように jobs.<job-id>.strategy.matrix を書くことでmatrixbuildを作ることができます。 *1 # .github/workflows/build.yml jobs: test: name: test (Ruby ${{ matrix.ruby }},Go ${{ matrix.go }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix:ruby: - "3.3" - "3.4"go: - "1.23" しかし、このmatrixの組み合わせを別のworkflowでも使いたくなった時に、普通にやると全く
はじめに こんにちは。バックエンドエンジニアのよしかわです。本記事ではGitHub Actions のワークフローを少し安全に書くコツを一つご紹介いたします。 この記事はエモーションテック Advent Calendar 2024の10日目の記事です。 脆弱性を含むワークフローの例 今回取り上げるのはスクリプトインジェクション対策です。例として公式ドキュメントで脆弱性を含むとして挙げられているコードを見てみます。これはプルリクエストのタイトルが octocat で始まっていれば「PR title starts with 'octocat'」を出力して成功し、そうでなければ「PR title did not start with 'octocat'」を出力して失敗するというものです。 - name: Check PR title run: | title="${{github.event
AI & MLLearn about artificial intelligence andmachine learning across theGitHub ecosystem and the wider industry. GenerativeAILearn how tobuild with generativeAI.GitHub CopilotChange how you work withGitHub Copilot. LLMsEverything developers need to know about LLMs.Machine learningMachine learning tips, tricks, and best practices. HowAI code generation worksExplore the capabilities and be
こんにちは、リードエンジニアの @dachi_023 です。今回はGitHub Actionsとecspressoでデプロイフローの構築をしたのでそれについて書いていきます。先に言っておくと簡単にセットアップできるし設定もシンプルなのでかなりおすすめです。 Actions |GitHub kayac/ecspresso:ecspresso is a deployment tool forAmazon ECS これまでのデプロイ コネヒトではECS環境へのデプロイに silinternational/ecs-deploy を採用しています。CodeBuildもしくはTravis CI上からecs-deployを利用してECS環境にアプリケーションをデプロイする構成です。 CI/CDツールの乗り換え検討 これまでずっとTravis CIを利用してきました。しかし 料金体系の変更 があった
はじめに SREチームの大木です。スノボの季節がもう終わりかけており、さみしい限りです。 feature staging環境*( 以下 feature環境 )自体のライフサイクルや管理をどうするか問題、なかなかどこも苦労していると思いますが、その中で今回それなりにいい感じの回答を出せたと思うので共有したいと思います。 *呼び方はpre-staging環境、pull request環境、テスト環境などいろいろありそうですが、私たちはfeature環境と呼んでいます。 どこが「いい感じ」なのかというと、PRのラベル付与によって環境の生成/削除を制御できる点です。PR画面上で楽々とfeature環境の管理ができたり、PR一覧からどのブランチでfeature環境が立っているかが分かりやすくなります。 feature環境について feature環境を当社のプロダクトであるPark Directの開発
こんにちは。SRE部の巣立(@ksudate)です。 我々のチームでは、AWS上で多数のマイクロサービスを構築・運用しています。マイクロサービスが増えるにつれて、CI/CDの長期化やリリース手法の分散など様々な課題に直面しました。本記事では、それらの課題をどのように解決したのかを紹介します。 目次 目次 はじめに CI/CDのこれまで Release PRによるリリース CI/CD実行時間の長期化 マイクロサービスごとのリリースが難しい リリーサーの制限ができない ドメイン単位の並行リリース リリース手法が分散する ブランチ間の同期が必要 パイプラインの増加 CI/CD実行時間の長期化 リリーサーを制限できない CI/CDの刷新 高速かつシンプルなCIパイプライン 変更差分を利用したCIパイプラインの実行 承認機能付きのCDパイプラインGitHub Environmentsによるリリー
This tutorial shows you how to configure your CodeBuild projects to runGitHub Actions jobs. For more information about usingGitHub Actions with CodeBuild see Tutorial: Configure a CodeBuild-hostedGitHub Actions runner. To complete this tutorial, you must first: Connect with a personal access token, a Secrets Manager secret, OAuth app, orGitHub App. If you'd like to connect with an OAuth app, y
最近は下記のようにライブラリ等のリリースを自動化している。 バージョンを入力するとPull Requestを生成 Mergeするとリリース ラベルの管理 前回のリリース以降にMergeされたPull Requestからリリースノートが自動生成されてほしい。このとき、Keep a Changelogの形式を参考に、変更点が以下の7種類に分類されてほしい。 add change deprecate fix removesecurity other そこで、Pull Requestに予めラベルを付けておくことで、どの節に分類するかを決定させる。またこのようなラベリングの習慣を設けることで、各Pull Requestの粒度の是正もねらう。ラベルを利用したリリースノート自動生成機能自体はGitHubが備えているので、.github/release.ymlでそのラベルを使う旨を指定すれば良い。 この
はじめに このガイドでは、パッケージ化された複合アクションを作成して使用するために必要な基本コンポーネントについて説明します。 アクションのパッケージ化に必要なコンポーネントのガイドに焦点を当てるため、アクションのコードの機能は最小限に留めます。 アクションは「Hello World」と「Goodbye」を出力するか、カスタムの名前を指定すると「Hello [who-to-greet]」と「Goodbye」を出力します。 このアクションでは、乱数も random-number 出力変数にマップされて、goodbye.sh という名前のスクリプトが実行されます。 このプロジェクトを完了すれば、独自の複合アクションを作成し、それをワークフローでテストする方法を理解できます。 Warning ワークフローとアクションを作成するときは、攻撃者によってコードが信頼されていない入力を実行する可能性があ
tl;dr この記事はterraform Advent Calendar 2021の2日目ですGitHub Actions でterraform を CI する ディレクトリ分割している時にワークフローが同じ形になりがち(こぴぺ) composite action で共通のアクションを使いまわして楽がしたい 複数ディレクトリも一度に回したい そんな actions.yml 注意 (今のところ現職では)actions から apply はしてないので書いてない 一応動いてるけど、無保証です コードの手直し、質問等歓迎 ワークフローファイル composite action として、 .github/actions/ の下にわかりやすい名前のディレクトリ/action.yml として置いておくことで、ワークフローから呼び出すファイルが作れる。 ドキュメントがあほみたいにわかりにくい(まだち
少し前に話題になっていた、AWSアクセスキーを使用せずにOIDCプロバイダ+IAMロールでGitHub Actionsに権限を付与する方法について、GitHubから正式な発表がありました!!TerraformのCI/CDにGitHub Actionsを利用していたので早速試してみたところ、プルリクレビュー目的にて利用しているterraform plan結果のコメント通知が表示されない事象に遭遇したため、対応したメモになります。 前提terraform plan結果のコメント通知は以下のActionを利用しています。 実際に動かしていたWorkflowファイルが以下です。 プルリクエストを作成すると、terraform plan結果がコメントとして追記されます。 OIDCへの変更 以下の公式サイトの例を参考に修正します。 修正後のWorkflowファイルが以下です。 変更箇所 permi
この a031c46782e6e6c662c2c87c76da9aa62ccabd8e はどこから来たのか?気になりますよね?え、気にならない?気にならない人は別にこれ以降は読む必要はありません。私は気になる方の人だったので調べました。 まずGitHub Actionsの公式ドキュメントを見ましたが、特に記載が見つかりませんでした。AWSの公式ドキュメント見たら、以下の記載を見つけました。OIDCプロバイダのCAの証明書のハッシュ値です。 When youcreate an OpenID Connect (OIDC) identity provider in IAM, you must supply a thumbprint. IAM requires the thumbprint for thetop intermediatecertificate authority (CA)
GitHub Actions以前調べたのですが、いろいろあって個人プロジェクトでサクッとビルドするのみに使っていました。 今回改めて調べを進めたのでメモ。 幾つかのリポジトリをGitHub Actionsに移行したけど、記事にしようとまとめていたらやった内容以上に調べてめちゃめちゃ時間かかった。 TL;DR トレンドGitHub Actions の基本 使用条件 使用制限 料金ホストランナーの指定 ハードウェアリソース インストールされるツール IP OSの選択 実行権限 ファイルパス 環境変数 シークレットGITHUB_TOKEN コンテキスト Artifact トリガーイベント Cache Actions 通知YAML Getting startedYAMLシンタックス on env jobs.<job_id>.needs jobs.<job_id>.runs-on jobs
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く