FY2023で導入してよかったGitHub Actionsのカスタムアクション&Tips集

5.4K Views

June 24, 23

スライド概要

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

FY2023で導入してよかった GitHub Actionsのカスタムアク ション&Tips集 PHPカンファレンス福岡2023 フリースタイルトーク June 24, 2023. v0.0.3 Press Space for next page

2.

自己紹介 katzumiと申します 以下のアカウントで活動しています 祝初採択! このあとスグ!VAddyホール で僕と握手! 今日はコレの供養です katzchum k2tzumi katzumi

3.

おじさん歴 1. Travisおじさん 2. CircleCIおじさん 3. Jenkinsおじさん 4. Github Actionsおじさん まあ最近はGithub Actionsが多いですよね?

4.

良かったカスタムアクション集

5.

Octocov https://github.com/marketplace/actions/run-octocov コードメトリクスツールです。PHPでも使える! 一つのアクションを実行するだけで差分が出るのが良い! → カバレッジを下げないことを意識づけできるようになりました 以前自前で "GitHub Actionsでカバレッジを可視化する" ことを行なっていましたが、差分までは出せなかった のがサクッと表示できるようになりました。

6.

Tagpr https://github.com/marketplace/actions/automate-pull-request-generation-and-tagging-for-releasesusing-tagpr マージされたら自動でタグを打ってくれています。 リリースフローをすごくいい感じにしてくれて開発者体験がすごくいいです。 "BaaSなプロジェクトにtagprを導入してみた"という記事にしました k1LoW @k1LoW · Follow これがtagprで実現したかったこと 統制されていながらも自由なリリースの自動 化 エイッと踏み込んでくださった @katzchum さんに感謝 katzchum @katzchum おー。自動で作られている! mergeしちゃっていいかな。ドキドキ github.com/k1LoW/runn/pul… 8:01 PM · Oct 1, 2022 7 Reply Copy link Read more on Twitter

7.

runn https://github.com/marketplace/actions/run-runn APIシナリオテストツールのCI組み込みがより簡単に!(宣伝) そもそもAPIシナリオテストってどうよ?という方は是非この後VAddyに来てください!(2回目) "APIシナリオテストの新ツールrunn" という紹介記事を書いているのでどぞー katzchum @katzchum · Follow runnはAPIのシナリオテストツールです。yamlでOpenAPI Specライクにサクッと書け、テストデータをdbやjsonフ ァイルから読み込めるなど、再利用性を高くテスト記述 できます。 バックエンド単体のE2Eテストをコード量少なく書けて大 変便利なので是非! tech.pepabo.com/2022/06/07/sce… k1LoW @k1LoW github.com/k1LoW/runn が loop: 構文を手に入れた上に json:// スキーム によるデータロードに対応したのでデータ・ドリブンテストや、なんな らGoのコードでTDTもできるようになったぞ!! @katzchum きっかけとなる提案から具体的な実装まで ありがとうござ いました! 8:09 AM · Aug 22, 2022

8.

Tips

9.
[beta]
連続pushした時に止めるアレ
=
concurrency
名前が分かりづらいので見落としている人が多いかも。。
定期的に記事 [1] にいいねが付きます。

name: test
on:
pull_request:
types: [opened, reopened, synchronize]
paths:
- 'foo/**'
push:
branches:
- develop
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

1. zenn.dev ↩︎

10.
[beta]
連続pushした時に止めるアレ
=
concurrency
名前が分かりづらいので見落としている人が多いかも。。
定期的に記事 [1] にいいねが付きます。

name: test
on:
pull_request:
types: [opened, reopened, synchronize]
paths:
- 'foo/**'
push:
branches:
- develop
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

1. zenn.dev ↩︎

11.
[beta]
GitHub
APIをプログラマブルに呼び出す
https://github.com/marketplace/actions/github-script
javascriptで書ける!シェルで文字列加工や条件分岐は怠いですよねw

- name: Upload Release Asset
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const fs = require('fs');
const path = require('path');
const release = await github.rest.repos.getReleaseByTag({
owner: context.repo.owner,
repo: context.repo.repo,
tag: context.payload.inputs.tag
});
const filePath = path.join(path.resolve(process.env.GITHUB_WORKSPACE), 'slides-export.pdf');
const fileContent = fs.readFileSync(filePath);
await github.rest.repos.uploadReleaseAsset({
url: release.data.upload_url,
headers: {
'content-type': 'application/octet-stream',
'content-length': fileContent.length,
},
name: 'slides-export.pdf',

12.

ご清聴ありがとうございます