いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Task (go-task) メモ-33 (プラットフォームごとに実行するタスクを分岐)

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

これまでの Task に関する記事は上の関連記事をご参照ください。

Taskでは、特定のプラットフォームでのみ実行するタスクを定義することが出来ます。

利用する場合は platforms: [ OS/ARCH ] という形で指定します。

例: platforms: [ linux/amd64 ]

また、OSのみ、ARCHのみの指定でも可能です。

例: platforms: [ linux ]

ここで指定する OS と ARCH は、GOOS, GOARCH のものが指定可能です。

go/src/go/build/syslist.go at master · golang/go · GitHub

サンプル

以下のようなタスクファイルを用意します。

# https://taskfile.dev

version: "3"

tasks:
  default:
    cmds:
      - task: 32bit
      - task: 64bit
      - task: windowsonly
      - task: linuxonly
  32bit:
    platforms: [linux/386]
    cmds:
      - echo 32bit
  64bit:
    platforms: [linux/amd64]
    cmds:
      - echo 64bit
  windowsonly:
    platforms: [ windows ]
    cmds:
      - echo windows
  linuxonly:
    platforms: [ linux ]
    cmds:
      - echo linux

Intel CPU 64ビット環境のLinux上で実行すると以下のようになります。

$ task
task: [64bit] echo 64bit
64bit
task: [linuxonly] echo linux
linux

参考情報

taskfile.dev

github.com

engineer.retty.me

zenn.dev

zenn.dev


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。