ソフトウェア開発

zsh で補完入力をしようとした際に (eval):1: command not found: と表示されるときの対処方法

結論 .zcompdump を削除する。zplug を用いているときにはそちらの zcompdump も削除します $ rm ~/.zcompdump $ rm ~/.zplug/zcompdump 削除した後に zsh を起ち上げ直します。

"act" コマンド(GitHub Actions ローカル実行コマンド)では "if: failure()" は実行できない

補足 2022/01/08 現在の情報です。 結論 GitHub Actions のローカル実行コマンドである act では、if: failure() を用いたステップは実行されません。 所感 最初は書き方が間違っているのかと思ってムキになって $ act --rm を叩いていたのですが、ふと push…

GitHub Actions をローカルで実行する act が実用的になった

act とは これです。 github.com 使い方 1. インストールする 公式ドキュメントにはいろいろなインストール方法が書いてありますが、ここでは bash 経由でインストールします。 $ curl https://raw.githubusercontent.com/nektos/act/master/install.sh | su…

WSL2 内から起動するブラウザを Windows 側のブラウザにする方法($ gh repo view --web 時などで)

結論 環境変数 BROWSER に Windows のブラウザの場所を指定する。 具体例 例えば Chrome の場合は以下のように指定します*1。 BROWSER="/mnt/c/Program\ Files/Google/Chrome/Application/chrome.exe" 参考 github.com 補足 gh だけのスコープとしたいならば…

Windows の VS Code の Live Server で、WSL2 から Windows 側のブラウザを開く方法

結論 settings.json に以下のような行を書き加えます。Chrome 以外のブラウザを設定したい場合には適宜書き換えて下さい。 "liveServer.settings.AdvanceCustomBrowserCmdLine": "/mnt/c/Program Files/Google/Chrome/Application/chrome.exe", 設定項目の場…

apt で mysql-server や mysql-client を install できない(見つからない)とき

結論 default-mysql-server や default-mysql-client をインストールします。 $ sudo apt install default-mysql-server $ sudo apt install default-mysql-client

CircleCI の設定ファイルは分割することはできない (2021/09/25)

根拠 https://support.circleci.com/hc/en-us/articles/360056463852-Can-I-split-a-config-into-multiple-files-support.circleci.com 補足 上記リンク先のページにもあるように、ローカルで分割して書いてそれを統合するような方法を使えば形式的には分割…

GitHub Actions の runs-on で指定する Ubuntu には結構いろいろ最初から入っている

結論 以下、公式ドキュメントの抜粋です(他にもいろいろと入っています)。 Installed Software Language and Runtime Node 14.18.1 Perl 5.30.0 Python 3.8.10 Python3 3.8.10 Ruby 2.7.0p0 Package Management Npm 6.14.15 Pip3 20.0.2 RubyGems 3.1.2 Ya…

rclone で Minio に copy する際に Failed to read metadata: Forbidden: Forbidden status code: 403 などというエラーが出る場合

結論 今はしょうがない。 アップロード自体は成功している。ただ、たとえばエラーメッセージで分岐するロジックを経ているようなときには注意が必要。 実例 $ rclone --update --include '*.jpg' copy . minio:foobar 2021/10/17 21:49:04 NOTICE: foobar_01…

Visual Studio Code にて Git(ソース管理)の内容が永遠に更新中の状態になるときの対処法

結論 Visual Studio Code の自動更新を適用する。 状況 こんな感じでソース管理のところの時計アイコンがずっと表示されているような状態です。 gyazo.com Visual Studio Code を更新する方法 左下の歯車アイコンを押して「再起動して更新する」をクリックす…

Cypress で npm のライブラリを使いたい場合にはプラグイン側にロジックを書いて cy.task で呼び出して使う

結論 ドキュメントに書いてあるとおりです。 docs.cypress.io The code you write in Cypress is executed in the browser, so you can import or require JS modules, but only those that work in a browser. 具体例 具体例についてもドキュメントに書いて…

CircleCI 内で Docker のコマンドを使いたい場合

結論 steps の中で setup_remote_docker を実行(記述)した後、docker コマンドを実行します。 具体例 NG な例(setup_remote_docker を実行しない場合) setup_remote_docker を実行しないと次のようにエラーになります。 .circleci/config.yml は次のとお…

CircleCI の Workflow で依存関係を requires で指定する際の名称は name: の設定でなければいけない

結論 具体例を見たほうが早いと思います。 以下のような Workflow(抜粋)があり job_a -> job_b と実行したいものとします。 sample_workflow: jobs: - job_a: foo: 'bar' - job_b: requires: - job_a 上記の YAML は正しい書式です*1。 注意するケース job…

CircleCI と GitHub Actions のどちらを使うか

注意 2021/09/25 時点での状況に基づいています。 結論 GitHub Actions を選んでおけばまず問題ない 業務で課金前提なら CircleCI もあり プライベートリポジトリの利用形態によっては CircleCI もあり 前提 前提として、CircleCI と GitHub Actions での無…

CircleCI で SSH する(実行コンテナの中に入る)方法

結論 1. 「Rerun」メニューから「Rerun Job with SSH」を選ぶ gyazo.com 再度ジョブが実行されます。時間がかかるジョブの場合は待ちます。 2. 実行ステップの最後に「Wait for SSH sessions」と現れるので、そこの詳細を見る 以下のように SSH するアドレス…

AWS CLI の補完を zsh で有効にする

結論 ~/.zshrc に以下の内容を追記します。 autoload -Uz compinit && compinit autoload -U bashcompinit && bashcompinit complete -C '(aws_completerの実行コマンドの場所)' aws 例 私は pyenv を用いて Python 版の AWS CLI を用いていますので、以下…

lsd コマンド (LSDeluxe) のインストール時には master ブランチからインストールしないと theme ファイルが効かない

lsd (LSDeluxe) とは Rust 製の Alt ls です。「すごい ls」です。 github.com 原則として master ブランチからインストールする cargo でインストールする際に $ cargo install lsd とすると最新のバージョンが入りません。その結果 theme ファイルが適用さ…

Storybook で webpack の output を設定してしまうと正しく表示されない

理由 Storybook の表示に用いられる iframe.html などが output のディレクトリに作られてしまうから*1。 具体例 .storybook/main.js に以下のように書くと output のディレクトリが設定されてしまいます。 module.exports = { (省略) webpackFinal: async…

Storybook で SCSS を使えるようにする

注意 フロントエンドは移り変わりが激しいため、この方法が誤りになる可能性があります 2021/09/06 時点での情報です 結論 1. sass-loader の v10 を入れる 最新版を入れてしまわないように注意する*1。 $ yarn add --dev sass-loader@^10.0.0 2. style-load…

CircleCI の steps 内で条件分岐をする方法

結論 when を使います。run: の step 内のシェルスクリプトで分岐する方法はよく見るのですが、step そのものを分岐します。 circleci.com 使い方具体例 公式ドキュメントに書いてあるとおりです。steps: 配下に when: を書き、その配下に condition: を書き…

Cypress の Free プランは上限に達するのが早いのでダッシュボードに記録する対象を絞る

前提 CI で Cypress を回す際に何も考えずに全実行しているとあっというまに Free プランの枠を食いつぶしてしまうので、実行する対象を絞ります。 もちろん、Free プランでないならばリッチに使いましょう。 Free プランの上限 Free プランの上限(制限)は…

Vue.js v3 でコンポーネントが表示されずに困ったときに判明した理由

結論 components: { Hoge } と書くべきところを component: { Hoge } と書いていたから(複数形にしていなかった)。 感想 一度通っておけば以後は間違えないタイプのやつです*1。 *1:そういう意味では一度通ったというのは意義があったことなのかもしれない

Yarn v3 (v2) を入れたら "scripts" が実行できなくなった場合

結論 ワイルドカードが含まれている場合はクォートでくくりましょう。 具体例 例えば、以下のような書き方だとエラーになります。 "scripts": { "hoge": "yarn clean && run-s -c hoge:*", ワイルドカードが含まれる場合は以下のようにクォートでくくります…

GitHub Actions の Runner を自前で立てる(セルフホスト self-hosted)ことについて

箇条書きで書いていきます。 公式ドキュメント docs.github.com 大前提 パブリックリポジトリでは使う意義はほぼ無いと思います パブリックリポジトリは GitHub謹製 のランナーの時間制限がないから セルフホストのランナーにはセキュリティ上の懸念が生じる…

GitHub Actions 内で任意のファイルを用いる場合には .github/ に置かない

結論 - uses: actions/checkout した際には .github/ は持ってきてくれないため、file not found になるからです。 邪魔にならないところにまとめておくのがいいと思います*1。 補足 checkout した際に持ってきてくれているファイルは steps 内で run: ls -l…

GitHub Actions と CircleCI を「ローカル環境実行」という観点で比較

注意 2021/09/26 時点での情報です。 前提 GitHub Actions では act を用います gh コマンド は push されたものを手元から発動するコマンドであって、ローカル環境に存在するジョブを実行するものではないです CircleCI では 公式の CLI ツール を用います …

Cypress で対象セレクタが複数ある中から任意のセレクタを選ぶ方法とその際の注意点

結論 cy.get('.foobar').eq(3) のように、get したあとに eq で取得できる 注意点として、get の戻り値を変数に格納している場合、eq を実行してしまうと格納した変数のオブジェクトは変更される シャローコピーになるということ 具体例 以下のような HTML …

OS起動時に Elasticsearch などの「重い」サービスがタイムアウトで自動起動に失敗するときの対処法

前提条件 Ubuntu です。 エラー例 以下のようにタイムアウトでエラーになります. $ sudo service elasticsearch status ● elasticsearch.service - Elasticsearch Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enab…

Ubuntu 20.04 で PostgreSQL 13 をインストールする

背景 現状では、単に $ sudo apt install postgresql をした場合に 12 が入るので、13 が入るようにしたいです。 結論 公式ドキュメント に従います。以下、ドキュメントのコマンド部分だけの抜粋です。 $ sudo sh -c 'echo "deb http://apt.postgresql.org/…

Ubuntu 20.04 で PostgreSQL 12 をアンインストールする

結論 $ sudo apt purge postgresql-12 背景 13 を入れようとして 12 が残ってしまった場合に、12を明示的に削除したいときに実行します*1。 *1:なお、12が残っている状態で13を入れるとポート番号がずれるので、両方を削除して13のみを入れ直すことになります

Powered by はてなブログ