Pricing | Shippable
Ubuntu/CentOS は Free Plan があるので、両方使えるかな?と思ったがそうではなかった。
という話。
プランの変更は 「Settings」 の 「Billing」 にあります。
ここで SKU を追加できるのですが、SKU を2つにすると請求額が $0 じゃなくなります。
SKU が1つ、かつ「Enable unlimited private repo builds」のチェックを外すと $0 になります。
(Size は L 、キャッシュもなし)
つまり、フリーで使う場合は OS は1つしか選べないようです。
残念。。
というわけで、Ubuntu から CentOS に変更しました。
今回は以上です。
2019年10月29日火曜日
2019年10月23日水曜日
Windows Docker toolbox (VirtualBox) で USB 接続を使う
OpenSTF を使ってみようと思って、Windows + Docker toolbox 環境でやってみようとしたところ、すんなりいかなかったのでメモ。
USB を認識させるために VirtualBox Manager の設定から「USBコントローラーを有効」にチェックをいれ、コントローラーを選択します。
設定はこれで以上の場合もありますが、Docker toolbox を起動した際に以下のようなエラーになった場合は追加のインストールが必要です。
自分の環境では 5.2.8 だったので、「Download_Old_Builds – Oracle VM VirtualBox」から 5.2.8 の Extension Pack をダウンロードしました。
ダウンロードしたら、あとはインストールするだけです。
(バージョンが違うとインストールに失敗します)
これで、Docker toolbox で USB を使う準備が整いました。
今回は以上です。それでは。
USB コントローラーを有効にする(VirtualBox)
まずは、docker-machine stop defaultで VM を停止します。
USB を認識させるために VirtualBox Manager の設定から「USBコントローラーを有効」にチェックをいれ、コントローラーを選択します。
設定はこれで以上の場合もありますが、Docker toolbox を起動した際に以下のようなエラーになった場合は追加のインストールが必要です。
Starting "default"... (default) Check network to re-create if needed... (default) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar. Unable to start the VM: C:\Program Files\Oracle\VirtualBox\VBoxManage.exe startvm default --type headless failed: VBoxManage.exe: error: Implementation of the USB 3.0 controller not found! VBoxManage.exe: error: Because the USB 3.0 controller state is part of the saved VM state, the VM cannot be started. To fix this problem, either install the 'Oracle VM VirtualBox Extension Pack' or disable USB 3.0 support in the VM settings (VERR_NOT_FOUND) VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole Details: 00:00:01.074731 Power up failed (vrc=VERR_NOT_FOUND, rc=E_FAIL (0X80004005)) Looks like something went wrong in step ´Checking status on default´... Press any key to continue...
VirtualBox Extension Pack をインストールする
VirtualBox のサイトから Extension Pack をダウンロードしてインストールするだけで良いのですが、現在使用している VirtualBox の Version と同じバージョンの Extension Pack をインストールする必要があるので注意してください。自分の環境では 5.2.8 だったので、「Download_Old_Builds – Oracle VM VirtualBox」から 5.2.8 の Extension Pack をダウンロードしました。
ダウンロードしたら、あとはインストールするだけです。
(バージョンが違うとインストールに失敗します)
これで、Docker toolbox で USB を使う準備が整いました。
今回は以上です。それでは。
2019年10月16日水曜日
Docker toolbox QuickStart ショートカットを起動したときに history にゴミが溜まるのを抑制する
Docker toolbox の QuickStart でシェルを立ち上げると、ものすごい量の history が溜まって邪魔だったので対策しました。
自分は以下のようにしました。
コマンドとコマンドの区切り文字は ':' です。
自分は以下のようにしました。
自分でコマンド打つときにも便利な設定なので、しておいて損はないですが、当初の目的はこれだけでは達成できません。
というわけで、次に続きます。
Docker Toolbox のインストールディレクトリ「C:\Program Files\Docker Toolbox」に start.sh があります。
ショートカットはこちらの .sh を呼び出しており、こちらを少し書き換えることで対策しました。
ファイルの先頭で set +o history をして履歴を無効にします。
※ここで set コマンドの前に1つスペースを上げていることに注意。最初の設定で空白で始まるコマンドを履歴に残さないようにしたので
そして、ファイルの末尾あたりで set -o history で履歴を有効にします。
bash の呼び出しあたりは先頭空白を入れて、HISTCONTROL による抑制が効くようにしました。
きれいになりました。
設定でできること
HISTCONTROL
HISTCONTROL 環境変数をセットしておくと、空白から始まるコマンドや重複するコマンドを履歴に残さないようにできます。- ignoredups
直前と同じコマンドの場合は保存しない
command history ls
lsls ls
ls -a
lsls
ls -a
ls - ignorespace
空白から始まるコマンドは保存しない
command history ls
lsls ls
ls -a
lsls
ls -a
ls - ignoreboth
ignoredups + ignorespace
- erasedups
重複するコマンドは最新のものだけが保存される
(履歴にある重複コマンドは削除される)
自分は以下のようにしました。
export HISTCONTROL=ignoreboth
HISTIGNORE
HISTIGNORE に履歴に残したくないコマンドを列挙できます。コマンドとコマンドの区切り文字は ':' です。
自分は以下のようにしました。
export HISTIGNORE=history:echo:'#*'
設定だけでは限界がある・・
上記の設定をしても、すこしだけ残ってほしくない履歴が減るくらいです。自分でコマンド打つときにも便利な設定なので、しておいて損はないですが、当初の目的はこれだけでは達成できません。
というわけで、次に続きます。
start.sh を書き換える
できれば外部から非侵入的に解決したかったのですが、自分の知識ではここまでが限界でした。Docker Toolbox のインストールディレクトリ「C:\Program Files\Docker Toolbox」に start.sh があります。
ショートカットはこちらの .sh を呼び出しており、こちらを少し書き換えることで対策しました。
ファイルの先頭で set +o history をして履歴を無効にします。
※ここで set コマンドの前に1つスペースを上げていることに注意。最初の設定で空白で始まるコマンドを履歴に残さないようにしたので
set +o history
#!/bin/bash set +o history
そして、ファイルの末尾あたりで set -o history で履歴を有効にします。
bash の呼び出しあたりは先頭空白を入れて、HISTCONTROL による抑制が効くようにしました。
set -o history if [ $# -eq 0 ]; then echo "Start interactive shell" exec "$BASH" --login -i else echo "Start shell with command" exec "$BASH" -c "$*" fi
最後に
これで設定は以上です。きれいになりました。
2019年10月7日月曜日
GitHub Actions で [ci skip] できるようにしました
[ci skip] とは
多くの CI サービスで採用されている、コミットメッセージでビルドスキップができるコマンドです。ドキュメントのみの更新とかでわざわざビルドしなくてもいい場合に便利な機能です。
GitHub Actions における ci skip
GitHub Actions は Azure Pipelines から派生しているので「***NO_CI***」が使sえるかな?と思っていましたが、それはない模様。
* Build pipeline triggers - Azure Pipelines | Microsoft Docs
* GitHub Actions ***NO_CI*** alternative - Stack Overflow
Azure Pipelines ベースなので、一般的な 「[ci skip]」 も使えません。
つまり、GitHub Actions では現状 CI をコミットコメントからスキップすることができません。
・・・とはいえ、スキップしたい!ということで今ある機能でなんとかできないかやってみました。
Workaround
steps.if でなんとかしてみた
steps.if は条件付きでステップを実行するかしないかを制御する機能です。これがあったので、以下のようにすることで、「ステップ」のスキップは実現できていました。
steps: - name: Check condition if: "! contains(github.event.head_commit.message, '[ci skip]')"
上記の方法で、最新コミットのコミットメッセージに「[ci skip]」が含まれていたら、そのステップをスキップすることができます。
ただ、これはあくまでステップのスキップなので、他サービスの [ci skip] とはだいぶ異なります。。
job.if がキターー
GitHub Actions - new workflow syntax features - The GitHub Blogjob 単位での制御がしたい!と思っていたら来ました!!
jobs: build: runs-on: ubuntu-latest if: "! contains(github.event.head_commit.message, '[ci skip]')"
steps.if のときと書き方は同じで、job のところに書けるようになりました。
これで job のスキップができるようになりました。
受け入れジョブを作ってそこを起点にする
さらに他 CI サービスでの挙動に近づけるために、依存関係を作成します。[ci skip] をチェックするジョブを起点にジョブをぶら下げることで、スキップしたジョブの後続もスキップするようにします。
jobs: prepare: runs-on: ubuntu-latest if: "! contains(github.event.head_commit.message, '[ci skip]')" steps: - run: echo "${{ github.event.head_commit.message }}" build: runs-on: ubuntu-latest needs: prepare
prepare ジョブがスキップすると build ジョブもスキップします。
これで完成です。
スキップ結果
スキップすると以下のように表示されます。checks にはのらないようです。(CI サービスによっては出たりする)
まとめ
ci-skip/WORKAROUND.md at master · srz-zumix/ci-skipいろいろ説明を省きましたが、こちらで今回の方法をまとめいます。
今回のポイントは github context の使い方かな、と思います。
公式ドキュメントの github context では省かれていますが、ドキュメントの表以外にも取得可能な情報がたくさんあります。
今回は 'github.event.head_commit.message' でコミットメッセージを取得しました。
↑のまとめに github context から取得できる値の例と、ダンプ方法も書いてあるので参考にしてください。
最後に
私が使っている CI サービスでの [ci skip] 機能に関して、まとめているリポジトリがありますので他のサービスでの [ci skip] を確認する場合、よろしければこちらも参考にしてください。
https://github.com/srz-zumix/ci-skip
では。
登録:
投稿 (Atom)