GitHub Actions の "ubuntu-latest" の中身は何なのか

結論

これです。いろいろなものが全部入りに近いので、毎回の $ sudo apt update && sudo apt install が省略できて CI上 ではありがたいです。

github.com

補足

具体的に中身をいろいろと触ってみたい場合には SSH するとよいでしょう。

obel.hatenablog.jp

GitHub Actions の PostgreSQL の services で Is the server running on that host and accepting TCP/IP connections? と出た際に疑うこと

結論

ports を明示的に指定しているかどうか。

具体例

以下の ports を追加したら自分の場合は動きました。

    services:
      postgres:
        image: postgres
        ports:
          - 5432:5432
        (以下省略)

補足

そりゃ当たり前だよねという話。

Google Sheets API (Ruby) で update_spreadsheet_value メソッドの引数の意味

前提

以下のようなメソッド実行例です。

便宜上、以降では以下のコメントに基づいて 1つめ、2つ目... という形で引数を呼ぶことにします

service.update_spreadsheet_value(
  sheet_id, # 1つめ
  range, # 2つめ
  value_range_object,  # 3つめ
  value_input_option: 'USER_ENTERED' # 4つめ
)

結論

1. 1つめの引数

シートの ID です。

2. 2つめの引数

書き込みの範囲です。'今月の予算シート!B10:F20' のような値が入ります。

より脳に負荷をかけない方法としては、'今月の予算シート!A1:Z10000' というように常にめいいっぱいの範囲を指定し*1、渡す値 (values) の側で空の値なり空の行や列なりを明示的に指定する、という方法があります*2

可変の変数はなるべく減らし、実質固定値としたいです。

3. 3つめの引数

以下のようなオブジェクトが入ります。Google::Apis::SheetsV4::ValueRange のインスタンスであることに注意です。

Google::Apis::SheetsV4::ValueRange.new(values: values)

ここで values こそが書き込む値(の配列)です。values は二次元配列の構造で、「『行に入る値の配列』の配列」が入ります。

CSV で考えるとわかりやすいです。例えば以下のようなCSVの値を入力したいとします。

あ,い,う
1,2,3,4,5,6,7
A,B

これを values で表現すると以下のようになります。

values = [
  ['', '', ''],
  ['1', '2', '3', '4', '5', '6', '7'],
  ['A', 'B'],
]

4. 4つめの引数

キーワード引数となっており、value_input_option: に対して RAWSUSER_ENTERED かを選べます。

前者はたとえば 'true' という値を渡して入力すると true としてシートに入力されます。

後者は同様に入力すると TRUE としてシートに入力されます。こちらの方が人間が入力する場合と同様なのでこちらが良いと思います*3

補足

  • これ以外にもオプションはあります
  • Ruby の例ですが、多言語でも実質的には同じだと思います

*1:何をもって「めいいっぱい」かは状況によりますが

*2:いつもおすすめできるものではありません

*3:文字列にしたい場合は "'true" のように「先頭にだけ」シングルクォーテーションを付与して渡す

daisyUI でデフォルトで使っているとラジオボタンの縁が黒くなったり、その他何かと黒くなるのをやめたいとき

結論

theme を設定する。

daisyui.com

デフォルトの Config では dark に設定されており、これだとたとえば選択中のラジオボタンの縁が黒くなってしまう*1

gyazo.com

ここで、data-theme="light" を属性にしてあげると、 light テーマに基づいた色になる。

gyazo.com

補足

ここの CSS を無理やりオーバーライドする方法も無くはないですが、まずは data-theme で対応したほうがいいでしょう。

Config については daisyUI を使うならば一読しておいたほうが良いと思います。

*1:body-shadow が原因

リダイレクト先のアドレスを CLI で取得する方法

結論

$ curl -D - TARGET_URL というコマンドを使う。

実例

1. Edge の .deb をダウンロードしたいとします。

Image from Gyazo

2. すると、ライセンス確認画面がまず現れます。

Image from Gyazo

3. そして、以下の画像の URL が「同意してダウンロード」のリンク先のURLとなっています。

4. curl でリダイレクト先を得ます

Location: の値がリダイレクト先 URL となります。

$ curl -D - "https://go.microsoft.com/fwlink?linkid=2149051"
HTTP/1.1 302 Moved Temporarily
Content-Length: 0
Server: Kestrel
Location: https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_102.0.1245.41-1_amd64.deb
Request-Context: appId=cid-v1:7d63747b-487e-492a-872d-762362f77974
X-Response-Cache-Status: True
Expires: Wed, 15 Jun 2022 06:26:35 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Wed, 15 Jun 2022 06:26:35 GMT
Connection: keep-alive
Strict-Transport-Security: max-age=31536000 ; includeSubDomains

5. リダイレクト先から wget でファイルをダウンロードします

$ wget "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_102.0.1245.41-1_amd64.deb"

補足

「4.」と「5.」を自動化するためにパイプでコマンドを連ねると良いです。

Powered by はてなブログ