ソフトウェア開発

GitHub Actions を用いて Cloud Run にデプロイする

前提 Dockerイメージは Artifact Registry に保存し、リージョンは asia-northeast1(東京)とします Cloud Run のデプロイ先のリージョンは asia-northeast1(東京)とします 必要なもの サービスアカウントの認証用 JSON ファイルが必要です。以下のような…

サービスアカウントで Cloud Run にデプロイするための権限

結論 Dockerイメージ の保存場所には Artifact Registry を使うことを前提として、以下の権限がおそらく最小です。 Artifact Registry 管理者 サービス アカウントユーザー Cloud Run デベロッパー 画像

Jest で特定のテストだけを実行するためのコマンドラインオプション

結論 --testNamePattern=<regex> jestjs.io 具体例 $ jest --textNamePattern=".*hogehoge.*"</regex>

GAS で スプレッドシート をいい感じにするのは結構つらい

つらいところ 冪等ではない命令がいくつかある シート保護 条件付き書式 トランザクション的な機能がない 途中で通信不良などで止まっても途中まで実行されてしまっている 常にロールバックできるようなコードを余計に書くことになる clasp が大前提 環境構…

clasp の .clasp.json を使い分ける

結論 --project オプションを用いる。 具体例 $ clasp push --project .clasp.foobar.json 注意点 ファイル名がドットから始まらないと怒られます。 $ clasp push --project aaaa.clasp.json Project file must start with a dot (i.e. .clasp.json) .clasp.…

Firefox 105 を使うと Cypress の実行に失敗する

状況 Still waiting to connect to Firefox が出続けます。 gyazo.com 原因 Firefox 側が原因です。Cypress チームも調査中とのこと。 github.com @cgraham-rs thanks for confirming our suspicions. We are going to check with firefox to see if they ar…

React Twitter Embed の TwitterTweetEmbed コンポーネントで読み込み中に文字を出す方法

結論 placeholder を props として渡す。 例 (前略) return ( <> <TwitterTweetEmbed placeholder={'読み込み中…'} tweetId="12345678901234567890" </> ) (後略) ソース github.com</twittertweetembed>

$ clasp run ができたりできなかったりして 6時間 ハマって結局使うのはやめた

clasp とは github.com 状況 GAS の実行を手元で行おうと*1 $ clasp run 環境を整えようとしたのですが、できたりできなかったりして 6時間 ハマり、結局確定的な解決方法を見いだせなかったので諦めました。 具体的には、credentials を初期登録直後にはう…

GitHub Actions で step がエラーであってもエラーとみなさずに次の step へ進む方法

結論 以下のプロパティを追記します。 continue-on-error: true 具体例 (前略) - name: テストステップ continue-on-error: true run: | echooooo hello (後略)

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_opti…

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

結論 theme を設定する。 daisyui.com デフォルトの Config では dark に設定されており、これだとたとえば選択中のラジオボタンの縁が黒くなってしまう*1。 gyazo.com ここで、data-theme="light" を属性にしてあげると、 light テーマに基づいた色になる。…

WSL2 にて Windows Terminal での出力文字を Windows のクリップボードにコピーする方法 (clip.exe)

結論 Windows に標準で入っている clip.exe に渡す。 例 $ echo "Hello, World!" | clip.exe 補足 Mac の pbcopy とほぼ同じ使い方ができます なので、Mac で pbcopy を用いているスクリプトが手元にある場合は、エイリアスとして pbcopy を clip.exe に紐づ…

GitHub Actions の "MySQL GitHub Action" で v5 を用いるときは step に sudo service mysql restart を入れる

MySQL GitHub Action (mysql-action) とは github.com 結論 標題通りです。sudo service mysql restart しないと MySQL が起動しませんでした*1。 さらに起動を待つとより安全 以下の Issue にもあるように、起動を待つとより安全です。 github.com v8 以上…

GitHub Actions で MySQL 5 を services: で用いると日本語が文字化けする

具体例 on: push: jobs: my_job: runs-on: ubuntu-latest services: mysql: image: mysql:5.7 このとき、日本語が文字化けします。 どうするか 1. MySQL 8(以上)を使う MySQL 8(以上)のイメージを使えば解決します。 2. mirromutth/mysql-action@v1.1 を…

git pull をしたら突然 "fatal: bad object refs/remotes/origin..." というエラーが起きた場合の対処法

結論 1. $ git fsck を実行してエラーの箇所を特定します。 $ git fsck Checking object directories: 100% (256/256), done. Checking objects: 100% (301105/301105), done. error: refs/remotes/origin/feature/foo: invalid sha1 pointer 00000000000000…

VS Code で Markdown ファイルを開いたときに中国語のエディタが開かれる理由(拡張機能)

状況 gyazo.com 結論 Office Viewer (Markdown Editor) gyazo.com 補足 このエディタは vditor です。 github.com

Google Apps Script を開こうとすると「Google ドキュメント内でエラーが発生しました。」というエラーが発生するとき

結論 https://docs.google.com のクッキーを削除する。 状況 1. Apps Script を開こうとします gyazo.com 2. エラーになります 再読み込みをしたり、数分後にページを開き直したりしても解決しません。 Google ドキュメント内でエラーが発生しました。このペ…

MySQL が起動しないで "[InnoDB] Unable to lock ./ibdata1 error" が出続ける場合は裏で動いているプロセスを切る

状況 MySQL をスタートさせるとこんなログが出る状況です。 foobar | 2022-04-18T03:18:47.208332Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. foobar | 2022-04-18T03:18:47.281734Z 1 [ERROR] [MY-012574] [InnoDB] Unable to l…

CentOS 7 で Lua を make しようとしたときに「致命的エラー: readline/readline.h: そのようなファイルやディレクトリはありません」と出るとき

起きている現象 $ curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gz $ tar zxf lua-5.3.4.tar.gz $ cd lua-5.3.4 $ make linux test lua.c:82:31: 致命的エラー: readline/readline.h: そのようなファイルやディレクトリはありません #include <readline/readline.h> 結論 $ s</readline/readline.h>…

expect コマンドで "[" や "]" を表現する(エスケープする)ためには「バックスラッシュを3つ」用いる

結論 例えば以下の expect ですと、[y/N] という文字列を待つことになります。 expect -c ' expect "\\\[y/N\\\]" '

git commit を実行したらフリーズしてしまう場合の対処法(レア)

結論 gpg を再起動します。kill したあとは自動で起ち上がります。 $ gpgconf --kill gpg-agent 状況 相当待つとエラーメッセージが出ました。 $ git commit error: gpg はデータを署名するのに失敗しました fatal: failed to write commit object 補足 VSCo…

i18n-next や next-translate にてコロンが含まれていると正しく翻訳されない問題

結論(理由) デフォルトで名前空間のセパレータとして定義されているから。 以下は next-translate の README です。 gyazo.com どうするか 設定ファイルで定義を変えます。当然ながら名前空間側のの記述方法が変わってくるので注意が必要です。 next-trans…

GitHub Actions の ubuntu-latest に内包されている PostgreSQL を使う

結論 以下のようなアクションを書くと、 ホストは localhost ポート番号は 5432 ユーザー名は postgres_user パスワードは postgres_password な PostgreSQL が起動できます。 services での構築は不要です。 - name: PostgreSQL を起動する run: | # https:…

GitHub Actions で CircleCI のように SSHデバッグ をする方法

結論 "Debugging with tmate" を使う。 github.com 使い方 使い方は公式ドキュメントに詳しく書かれています。 mxschmitt.github.io 以下の画像のような感じで SSH の接続情報が表示されるので、コピペして ssh コマンド を実行すればログインできます*1。 g…

WSL2 かつ Ubuntu 22.04 にて snap を用いないで Firefox を使う

結論 以下のページのとおりです。snap やら systemd やらの面倒なことは飛ばせます*1。 www.omgubuntu.co.uk 元に戻す時 以下のファイルを消せば(だいたい)なかったことになります。 /etc/apt/sources.list.d/mozillateam-ubuntu-ppa-jammy.list /etc/apt/…

Vue Test Utils にてコンポーネントを遅延読み込みしている際に出る Vue warn への対応

#結論 コンポーネントをマウントするときに stubs プロパティを用いて明示的にスタブ化する。 具体例 以下のような感じでコンポーネントを遅延読み込みしているとします。 components: { ChienComponent: () => import("path/to/chien_component") }, この…

Cypress にて「ある要素が持つテキストを配列として取得してその内容をテストする」方法

前提 以下のような HTML があるとして、この4つの文字列を配列として扱い、期待通りであるかどうかをチェックするテストを書きたいとします。 <div class="hoge fuga">ああああ</div> <div class="hoge fuga">いいいい</div> <div class="hoge fuga">うううう</div> <div class="hoge fuga">ええええ</div> 結論 jQuery のメソッドを使います*1。 具体的には以下のようになります。 …

Discord.js でスラッシュコマンドの登録を解除する方法

結論 空のコマンドの配列 [] を登録する。 例 discord.js Guide の こちらのページ の例でいうと、次のようになります(関連箇所だけを抜粋)。 rest.put(Routes.applicationGuildCommands(clientId, guildId), { body: [] }) .then(() => console.log('Succ…

Powered by はてなブログ