GitHub Actoinsのartifactに取り組んでみる

GitHub Actoinsのartifactに取り組んでみる

ども!今回はGitHub Actions内からファイルをアップロードするartifactに入門したのでまとめました。直近のお仕事では、GitHub Actionsをぶん回して入門して失敗してを繰り返しているので、学びが多いです。書籍から自分なりのサンプルを作るのが大変です。セキュリティスキャンの空き時間ありすぎて執筆捗る~

ご挨拶

一人呑みでふらっと出かけている龍ちゃんです。最近寒くなってきて、なかなか家から出たくなくなっていますね。ベランダでお酒を飲むのも雰囲気が出て非常に良いですね。

今週は業務でGitHub Actionsをぶん回している日々です。おかげで待ち時間の発生が多すぎて、ブログ執筆が捗ります。おかげでGitHub Actionsに対する理解度がプチ上昇中です。書籍を二つほど読破したので知識は増えたと思われます。

今回は、タイトルにもある通り「GitHub Actionsのartifact」についてまとめていこうと思います。存在は知っていたのですが、プロジェクトで話をしているときに「artifactにあげといて~」という指示が出た際に固まってしまいました。恥ずかしい気持ちがインサートしてきたので、遊んで入門していこうと思います。

それではぬるっと本題です。

GitHub Actionsのartifact

まずはartifactとは何か?という話から、実際に使って「何ができるのか」という部分について入っていきたいと思います。

artifactとは何者だ?

こういう時のための公式リファレンスになります。単純に説明すると「GitHub Actions中に指定したファイルをファイルとしてアップロード」することができます。とりあえず実行結果を吐き出せるということだけ覚えておけば良いです。

GitHub Actions中にアップロードとダウンロードを行うことができるので、job間の値の共有に使用することができます。「何を言っている」って感じですよね?ですがこの文脈で使用されることも多かったようです。この赤文字の背景には、Jobごとに実行環境が切り分けられるという問題点があります。

Job間でファイルが実行環境が共有されないという問題点

なので、Jobを切り分けたい人がいた場合は何らかの手段を用いてJob間のデータのやり取りが必要になるわけです。これをartifactを用いて処理をすると以下のイメージになります。環境外に吐き出して、ダウンロードすることでJob間の情共有を行うことができます。

artifactをjob共有に用いる方法についての方法論

とりあえず、これだけ知っていればぶん回すことができます。

artifactをぶん回してみる

artifactのサンプルを以下に置いておきます。

name: Artifacts Sample
on: workflow_dispatch

jobs:
  upload-artifact:
    runs-on: ubuntu-latest
    steps:
      - name: Create Artifact
        run: echo "初めてのartifact" > artifact-sample.txt
      - name: Upload Artifact
        uses: actions/upload-artifact@v4
        with:
          name: my-artifact
          path: artifact-sample.txt

  download-artifact:
    runs-on: ubuntu-latest
    needs: upload-artifact
    steps:
      - name: Download Artifact
        uses: actions/download-artifact@v4
        with:
          name: my-artifact
      - name: Read Artifact
        run: |
          ls
          cat artifact-sample.txt

ワークフローの内容としては、以下になります。

  • upload-artifact
    • artifact-sample.txtに”初めてのartifact”を書き込んで保存する
    • artifact-sample.txtを”my-artifact”という名前でアップロード
  • download-artifact
    • “my-artifact”をダウンロード
    • 中身を閲覧

実行結果としては、以下の画面になります。『Artifacts』という部分にアップロードしたファイルが表示されます。

artifactはここに保存されるんやで!

今回は、単一のファイルのみをアップロードしたのですがディレクトリごとアップロードすることも可能です。

artifactの使用どころ

さてさて、どんな時にartifactを使用するのかという部分について考えていきます。これはいろんなシナリオが考えられます。

  • 複雑なファイルをJob間で使いまわしたい時
  • GitHub Actions内で実行したセキュリティスキャンの実行結果をアップロード

すぐ思いつくのは上記の二点になります。GitHub Actions中にファイルをアップロードしたいシナリオってほかに何かありますかね?デプロイの実行結果をローカルにも保存しておくなどもありますね。

おわりやす

直近の仕事で学んだことをまとめてみました。直近のお仕事では、GitHub Actionsをぶん回しています。主にセキュリティスキャンが対象になります。OWASP ZAPってローカルで起動するものだと思っていたのですが、Docker版でCLIでのスキャンもあるらしいですよね。ここがええ感じになったらまたブログにまとめていきます。

Git関連の記事もええ感じにまとまってきましたね。以下に記事をまとめておきます。

GitHub Actionsを学んで、デプロイができるようになってから若干フロントの幅が広がったような気がします。フロントエンドエンジニアはデプロイをセットで学んでいった方が良いと思います。

勉強に使った書籍はこちらです。

 

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です