Closed17
act を使ってみる[Github Actions on local]
これ
参考
タスクランナーとしてカジュアルに呼べるようにしたい
参考
環境変数とか渡さないといけないのであれば、タスクランナーとしては使いにくそう
./.actrc
を用意すれば、いちいちオプション渡したりはしなくて良くなるらしい
act -s MY_SECRET
- check for an environment variable named MY_SECRET and use it if it exists. If the environment variable is not defined, prompt the user for a value.
これ使う
# echo $AWS_REGION
ap-northeast-1
# act
Provide value for ' AWS_REGION':
あるのに聞かれる
なぞのスペースが気になる
.atcrc
で -s
オプションを使うとスペースも含んじゃうみたいなバグな気がする
# act -j test -s DISCORD_TOKEN -s AWS_ACCESS_KEY_ID
Provide value for 'AWS_ACCESS_KEY_ID -SAWS_SECRET_ACCESS_KEY -SDISCORD_TOKEN': Error: context canceled
複数指定ができない
こう書いたら通った
.actrc
-sAWS_REGION
-sAWS_ACCESS_KEY_ID
-sAWS_SECRET_ACCESS_KEY
-sDISCORD_TOKEN
docker-compose.yml
name: Test
on:
push:
defaults:
run:
shell: bash
working-directory: ./
env:
AWS_REGION: ${{ secrets.AWS_REGION }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
DISCORD_TOKEN: ${{ secrets.DISCORD_TOKEN }}
jobs:
test:
name: Test
runs-on: ubuntu-latest
environment:
name: heroku_production
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install docker-compose
if: ${{ env.ACT }}
run: |
apt-get update && apt-get install -y docker docker-compose
- name: Build containers
run: docker-compose build app
- name: Test
run: |
docker-compose run app /bin/bash -c "RUST_BACKTRACE=1 cargo test"
- name: Install docker-compose
if: ${{ env.ACT }}
run: |
apt-get update && apt-get install -y docker docker-compose
ACT のときだけ docker-compose の install を走らせるようにした。
github で走らせる場合はデフォルトで入ってるので必要ない
最終テストとしては良いけど、カジュアルに走らせるのには重そう
特に今回は docker-compose 経由で test してるので
dependencies を満たした image をアップロードしておいて、ローカル、Github、ACT、全部共通でそこを見るって形にすれば多少マシにはなりそう
デフォルトだと push のイベントを拾うけど、それだとリリース系のアクションもひろわれて、タスクランナーとして使えない
act で調節するか、push 以外に変えるかで対応したい
このスクラップは2021/06/28にクローズされました