こんにちは。開発部門(プロダクト技術本部)の宮下です。 BIGLOBE では GitHub Actions による作業効率化に取り組んでいます。 本記事では、GitHub Actions が得意とする点を踏まえつつ、AWS Lambda と連携して手作業を大幅に減らす実例をソースコード付きで紹介します。 想定読者 GitHub Actions を使うと何がうれしいのか? 代表的なユースケース あまり向かないユースケース 事例紹介 課題 改善後 API コンテナ リグレッションテスト用 Lambda パフォーマンステスト用 Lambda 自動化による効果 Lambda を実行するアクション GitHub Actions で使えるアクション ソースコード ポイント、はまったところ GitHub Actions の制御 / ステップ間での値の受け渡し GitHub Actions の制御 / 複
独学で未経験のモダンな技術を学習してポートフォリオを作るまで【Rails / Next.js / AWS / Docker / GitHub Actions】RailsAWS初心者個人開発Next.js はじめに こんにちは!きいな(@keynyaan)と申します。 今回、モダンな技術を使って初めてポートフォリオを作ってみたので、開発背景や学習教材などを紹介します。 ポートフォリオを作るにあたって、色々な方の素晴らしいポートフォリオ作成記事が参考になったので、今度は私の記事が誰かのためになることを祈ってます。 自己紹介 大学卒業後、新卒でSIer企業に入社し、3年ほどJavaやJavaScriptなどを使って、バックエンドやフロントエンドのシステム開発を行っていました。 そんな私が自社開発企業に興味を持ち、退職を機に、2023年1月からポートフォリオ作成に向けて学習を始めました。 学習期間
GitHub ActionsでPRの"Files changed"タブと同じファイルの内容を取得する方法*1。 - uses: actions/checkout@v3 with: # マージベースの探索でコミットをさかのぼるために全コミットを取得しておく fetch-depth: 0 - run: | # ... でPRのFiles changedと同じ差分 git diff origin/main...HEAD # ファイル名のリストだけ git diff --name-only origin/main...HEAD # 必要に応じて追加、変更したファイルだけなど git diff --diff-filter=AM origin/main...HEAD やっていることは次と同じ。 # fast-forwardでない可能性があるのでマージベースを見つけておく merge_base_sha=
July 2, 2021 You can now run Node.js projects faster on GitHub Actions by enabling dependency caching on the setup-node action. setup-node supports caching from both npm and yarn package managers. - uses: actions/setup-node@v2 with: node-version: '14' cache: npm For questions, visit the GitHub Actions community Maintainers now have additional control over when they must approve Actions runs for ne
今まで GitHub Actions から AWS を OIDC (OpenID Connect) で連携する場合にサムプリントを取得して ID プロバイダを作る必要があった💡しかし,2023年6月27日に GitHub Changelog でサムプリントを2種類設定するという記事が公開されて対応することになったけど,2023年7月6日から AWS 側で自動的に証明書の検証をしてくれるようになって,特に気にする必要がなくなった.結果的に適当なサムプリントを指定しておけば良く楽になった👀 動作確認をする機会があったので簡単にまとめておこうと思う. github.blog ちなみに「2023年7月6日」という日付は AWS から送られてきたメールに載っていた📩 [NOTIFICATION] OpenIDConnect (OIDC) errors when using GitHub OID
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 # 略(色々なstep) - name: Setup tmate session uses: mxschmitt/action-tmate@v3 # 略(色々なstep) 2. Actionsのワークフローを動かす pushする、PRを立てる等、ワークフローを動かすためのトリガーを実行してください。 ワークフローが動き出すと、action-tmateが動くステップでずっと止まっているので、そこを選択。 SSHコマンドが書かれているのでコピーする。 3. SSHログインする ターミナルで先ほどコピーしたSSHコマンドを実行。 以上、3ステップでした。 後始末 SSHログイン後にやりたい作業が終わったら、ワークフローを停止しましょう。 参考 GitHub
はじめに みなさんこんにちは、物流業界の価値最大化をミッションに掲げ運送会社のDXに寄り添うアセンド株式会社でCTOを務めている丹羽です。 1日5.2回のリリースを実現するプロダクトチームの開発体験を支えるCIの高速化についてご紹介します(先週3/20週の平均値)。1日に数回デプロイというレベルでの素早く開発するにおいて、 push 時の CI Check の速さは地味ですが開発体験にとって見逃せない存在になります。特にモノレポ環境ではジョブが複数ある中でいかに省略ができるかが鍵となり、泥臭くも数十秒でも高速化のため戦ったポイントを紹介します。 アセンドでは顧客課題を中心にプロダクト開発をするためにフルサイクルエンジニアという開発スタイルを取り、1エンジニアがフロント・バックエンドだけでなく設計からリリース・サポートまでのソフトウェアのライフサイクル全体にオーナーシップを持って開発していま
GitHub Actions と hadolint (Haskell Dockerfile Linter) を組み合わせて,今まで雑に実装してきた Dockerfile の静的解析を自動化する環境を作った.できる限り Dockerfile Best Practices を意識していることもあり,警告はあまり多く出なかったけど,やはり CI (Continuous Integration) で気付ける安心感はある! www.docker.com hadolint (Haskell Dockerfile Linter) hadolint を使うと Dockerfile に警告を出してくれる.また Dockerfile の RUN は,シェルスクリプトの Linter として有名な ShellCheck を使って警告を出してくれる.例えば FROM centos:latest のように FROM
「そんなもの余裕なんですけど」 と言ってくださったのでGitHub Actionsでリリース用PRを作成するお話をしていきます。 はじめましてスペースマーケットでフロントエンドエンジニア兼リーダーをしている和山です。 なぜやるのか さっそくですが、今回なぜGitHub Actionsにこのようなお仕事をお願いすることになったのかその経緯からまずはお話させていただきます。 スペースマーケットでのブランチ運用は下記のようになっています(※リポジトリのできた時期によって若干運用が異なる場合があります)。 大きく分けると3種類、featureの開発ブランチとstaging環境と同期しているstagingブランチ、本番環境と同期しているmaster(main)ブランチとなります。 また環境と紐づくブランチではpushイベントを契機としてAWSのCodePiplineを通してそれぞれの環境へ資材が反映
株式会社スペースリーのRailsエンジニアの海老原です。 スペースリーが提供するサービスの反映は、CSチームでテストを実施してから本番環境にリリースする業務フローになっております。各featureブランチごとに、テストを実施できるように、プルリクエストに動作確認の手順を記載し、動作確認をCSに依頼するという流れです。今回は、ラベルごとにPRの記載内容を書き分けて、自動でプルリクエストを作成できるようにする設定を、GitHub Actionsを使って行いましたので、コードを交えて紹介したいと思います。 以下のようなプルリクエストをGitHub Actionsから自動で作成できます。赤枠が自動で埋められる部分です。 1. ローカルデバッグ環境構築 まずは、作業の準備として必要なツール類のインストールを行ってローカルの開発環境を整えて行きます。 4章のインテグレーションテストで利用することになり
2021年 10月 27日 GitHub Actions を使って WordPress のテーマをデプロイ(アップロード)する カテゴリ: WordPress タグ:GitHub FTP を使ったアップロードが面倒なのでなるべく Git と連携したデプロイをしたい。そうなると CI のサービスが割と主流なんですが、GitHub Actions を使うともっとお手頃にローカルからサーバーへデータ転送ができるのでやり方を書いておきます。 レンタルサーバー WordPress のお仕事だとエックスサーバーやさくらインターネットを使うことが多いのですが、この場合は転送に FTP を利用します。 まず設定するのは、リポジトリにある Settings の secrets に FTP 情報などを登録します。 ここで登録する内容は外部から見えないので安心して利用可能。 テスト環境と本番環境など転送先サーバ
FOSS開発で細かいやらかしを積み上げてきたのでまとめる。 テストの失敗原因レポートをartifactとしてアップロードしそこねる actions/upload-artifactを使ってテストレポートをartifactとしてアップロードする際、以下の書き方だと失敗する。 # bad - run: | ./gradlew test --no-daemon --stacktrace - uses: actions/upload-artifact@v2 with: name: reports path: build/reports これはテストが失敗した時点で後続のstepsが実行されなくなるため。明示的に失敗時でもアップロードされるように指示する必要がある。 # bad - run: | ./gradlew test --no-daemon --stacktrace - uses: actio
この記事は、6月から始まっている #LXベッテク月間 6日目の記事です。 昨日は talos さんの 「そろそろあの課題着手しなきゃ!」チームに日々蓄積されるIssueを、Notionで簡単にプロジェクト化〜TODO管理する方法 でした 🐬 バクラク請求書でリードエンジニアをしている @yyoshiki41(中川佳希)です! 最近たどり着いた git で差分があるか確認するコマンドは、git diff --exit-code --quiet です。 バクラクシリーズでは先月(2022年5月)、経費精算をリリースしました! 今後も更にコーポレート業務全体のデジタル化をサポートしていきます。 この記事では GitHub Actions から ECS でのワンショットタスクを実行する仕組みを紹介します。 処理の流れ このあたりは先駆者となるツールも複数ありますが、Actions 上で実現したい
AWS CodeBuild customers can now use GitHub Actions during the building and testing of software packages. AWS CodeBuild is a fully managed continuous integration service that compiles source code, runs tests, and produces ready-to-deploy software packages. Customers’ CodeBuild projects are now able to leverage many of the pre-built actions available in GitHub’s marketplace. GitHub Actions are open
以下を実現するGithub Actionsを作る方法を紹介する。 Dockerイメージのビルドには BuildKit を使う Github Actionsのもつキャッシュの仕組みを有効にする DockerイメージのタグにはYYYYMM-(コミットハッシュの頭7桁)のように、コミットごとにユニークになる値を使う mainブランチをビルドする際には、latestタグも付与する このBuildKitとGithub Actionsのキャッシュを組み合わせる方法は、Dockerの公式ドキュメントに、Optimizing the workflow として掲載されている。 これに自分のアレンジを加えた方法として紹介する。 まず、BuildKitを有効にするには、以下のdocker/setup-buildx-action@v1を先に組み込む。 - name: Set up Docker Buildx id
GitHub Actionsにはpermissionsというフィールドがあり、それぞれのWorkflow/Jobでのsecrets.GITHUB_TOKENの権限を設定できるようになっています。 secrets.GITHUB_TOKENはGitHub Actionsの実行ごとに発行されるGitHubのTokenで、多くのGitHub Actionsはこのトークンを使ってリポジトリをgit cloneしたり、Issueにコメントを書いたりしています。 GitHub Actions: Control permissions for GITHUB_TOKEN | GitHub Changelog Workflow syntax for GitHub Actions - GitHub Docs このpermissionsをちゃんと設定することでサプライチェーン攻撃などの影響を軽減することができます
bin/rspec --format progress --format RspecJunitFormatter --out report/rspec-${{ matrix.node_index }}.xml $(./split-test --junit-xml-report-dir report-tmp --node-index ${{ matrix.node_index }} --node-total 2 --tests-glob 'spec/**/*_spec.rb' --debug) [2021-01-08T07:12:09Z WARN split_test] Timing data not found: /home/runner/work/split-test-example/split-test-example/spec/1_spec.rb ... [2021-01-08T07
tl;dr; environment を三項演算子でいい感じにする モチベーション TerraformのワークフローをGitHub Actionsで動かしてるんだけど、terraform apply した時(具体的にはmainブランチか手動でのbuild実行時 *1 )のみ environment をセットしてDeployments *2に通知したかった。( terraform plan (Terraformのdry run)ではDeploymentsには通知したくない) 実装例 こんな感じ。 environment: ${{ ((github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch') && 'terraform-apply') || '' }} github.com 分かりづらいんですが t
AWS Open Source Blog Continuous delivery of container applications to AWS Fargate with GitHub Actions At the day two keynote of the GitHub Universe 2019 conference on Nov 14, Amazon Web Services announced that we have open sourced four new GitHub Actions for Amazon ECS and ECR. Using these GitHub Actions, developers and DevOps engineers can easily set up continuous delivery pipelines in their code
GitHub Actionsについて調べていたら、ひょんなことからworkflow commandsの存在とそれを使ってPull RequestのDiff Viewでメッセージが表示できることを知った。 (GitHub ActionsでESLintを動かした時にエラー表示してくれるアレ) 良い機会なのでTS Compiler APIの勉強も兼ねて型検査の結果をコード上に表示するためのGitHub Actionsを自作しようと思う。 できたもの Embedded content: https://github.com/marketplace/actions/typescript-error-reporter 使い方 お手持ちのGitHub Actions workflowに2行追加するだけ - name: TypeScript Error Reporter uses: andoshin11/
Dockerfile とタスク定義ファイルが変更され、レポジトリに Push される度にプロセスを自動実行する Github Actions を設定します。 こちらの記事を参考にタスク定義が更新される度に既存環境の Fargate へ自動デプロイをする Github Actions を設定したので手順を書き残しておくことにしました。 参考: GitHub Actions からサクッと Fargate にデプロイしてみた ケースシナリオ Dockerfile とタスク定義ファイルが変更され、レポジトリに Push される度に以下のプロセスを自動実行する Github Actions を設定します。その際に任意の環境へ Assume Role しデプロイできるように設定します。 AWS 環境へ Assume Role する Docker イメージをビルドして既存の ECR へ Push する
November 10, 2021 You can now specify input types for manually triggered workflows allowing you to provide a better experience to users of your workflow. In addition to the default string type, we now support choice, boolean, and environment. name: Mixed inputs on: workflow_dispatch: inputs: name: type: choice description: Who to greet options: - monalisa - cschleiden message: required: true use-e
環境構築: VS Code Remote Container で Azure + Terraform + GitHub ActionsAzureDockerTerraformVSCodeGitHubActions Intro Fork して clone したらすぐに Azure を Terraform できる devcontainer を作りました。 VS Code の Remote Development (Remote - Containers) 機能を使っているので、ローカルに VS Code と Docker Desktop の環境があれば、以下のようなことがほんの少しの準備で実行できます。 Terraform で Azure を管理する terraform や Azure CLI az コマンドがすでに Docker コンテナ上のインストールされています。 GitHub Acti
your-project-dir ├── .github │ └── workflows │ └── workflow.yml └── static-files ├── README.md └── yakiniku.jpg Step.2 事前準備 GitHub Actions用のIAMユーザーを作成 GitHubのSecretsに上記IAMユーザーのシークレットを登録 S3のバケットをprojectname-static-filesという名前で作成(ホスティングする場合は公開設定にする) S3のバケット名はグローバルでユニークにする必要がある(公式ドキュメント) Step.3 GitHub Actionsのワークフローを書く はじめに全体像を載せます。 name: s3-deploy-sample on: pull_request: branches: - master types
イベント内容 概要 \3/21(木)19:30スタート/ ◆GitHub勉強会◆ GitHub Copilotの最新動向 GitHub Actions セキュリティ 開発フロー支援の機能 etc ITテクノロジーに関する様々な職種やテーマをピックアップしてセミナー形式で学ぶイベントです! これまでにも増して目を見張るスピードで進化を遂げるGitHub。 普段から使っているのに、気づいたら新しい設定値増えてませんか? GitHubの注目の更新情報を、ギュッと凝縮してお届けします。 お役立ち機能をキャッチアップして、明日からの開発をブーストしましょう! 今回もGitHubの技術アドバイザリやワークショップの講師を担当されている岩永さんをお招きしてGitHub最新情報や改めて学びたい中級テクニックなどを学ぶセミナーを開催いたします。 主催/IT・テクノロジー人材のためのコミュニティ「TECH S
GitHubにコードをpushすると静的コード解析を走らせて、問題を指摘してくれるようなCI (GitHub Actionsのワークフロー)を作ります。 完成図 https://github.com/shimat/csharp_actions_test/pull/1/files#diff-8d95ab4216ead1b0e5e99cb5ef8dece89aea47bd71c14d15a1dfb0f92e0947a2 静的コード解析について 本記事ではMicrosoftが用意している解析機を使います。従来はFxCop analyzersと呼ばれていたもので、今は .NET analyzers というそうです。 https://docs.microsoft.com/en-us/visualstudio/code-quality/migrate-from-fxcop-analyzers-to-n
🆙 2021/03/21 docker公式アクションを使ってイメージを作る記事を書きました sminamot-dev.hatenablog.com 🆙 2020/06/20 crazy-max/ghaction-docker-buildx の利用をv1 -> v3に更新 あらすじ 前回おうちk8sの環境がめでたく整いました 🎉 sminamot-dev.hatenablog.com さて何か動かすためにDockerイメージを作ろ、と思ってまずは適当に以下のような(なんの意味もない)イメージを作りました FROM alpine:3.11 ENTRYPOINT ["echo", "hogehoge"] Macでビルド後DockerHubに上げて、いざラズパイ上で動かしてみると… $ sudo docker run --rm sminamot/multi-arch-sample stand
その昔、初めてのサーバーレスアプリケーション開発というブログを書きました。 このシリーズを通して出来上がるものは、AWSのコードシリーズを用いてAWSリソースをデプロイするためのパイプラインです。 時は流れ、2020年。同じような仕組みを作るのであればCDKとGithub Actions使いたいという思いに駆られたので、こんな感じのパイプラインを作成してみました。 今回作成したコードは以下のリポジトリにあげています。 cdk-github-actions 目次 CDKとGithub Actions 今回構築するアプリケーションの全体構成はこちら。 CDKで「クライアントからリクエストを受けて文字列を返却する」簡単なアプリケーションを作成します。 AWSにデプロイされるまでの流れは以下のようになります。 ローカルでCDKを使ったアプリケーションを作成 featureブランチを作成しmaste
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く