2024年12月12日木曜日

Gitlab CI でデプロイジョブが古くて実行できない場合の対処方法

Gitlab CI でデプロイジョブが古くて実行できない場合の対処方法

概要

再度 force push してあげます

環境

  • Gitlab 17.5.2

エラー詳細

This job requires a manual action

This deployment job does not run automatically and must be started manually, but it's older than the latest deployment, and therefore can't run.

こんな感じで古いデプロイジョブは実行できなくなっています

対策その1

対象のブランチの HEAD から再度パイプラインを手動で実行してあげれば OK です
ただブランチのパイプラインなどの場合 workflow ルールで手動実行できないケースがあるのでその場合は以下の対策を試してください

対策その2

ブランチであれば一つコミットを打ち消して再度 push すれば OK です

  • git reset HEAD^
  • git add .
  • git commit -m "Re commit"
  • git push -u origin feature/branch_name

これで再度ブランチからパイプラインが作成されるのでそこからデプロイすれば OK です

最後に

古いデプロイジョブでも実行可能にするオプションがあるっぽいのでそれをオンにしても OK ですが間違って最新版以外をデプロイしまう可能性があるので注意しましょう

2024年12月11日水曜日

Gitlab CI でリトライする方法

Gitlab CI でリトライする方法

概要

retry を使います

環境

  • Gitlab 17.5.2

.gitlab-ci.yml

この場合は2回リトライするので3回目で失敗して終了します

stages:
  - test

failure_test:
  stage: test
  retry:
    max: 2
    when: script_failure
  image:
    name: python:3.12.8-alpine3.21
  script:
    - python error.py

最後に

タイミングにより失敗するジョブなどに使えます

参考サイト

2024年12月10日火曜日

GIGOオンクレ橋渡しメモ

GIGOオンクレ橋渡しメモ

とにかく20手以内に取れるようになることが大事かなと思います
20手をすぎると強制終了モード(アシスト状態)になります
初期もしくは途中からで10手以内で取れるようになればだいぶ上手かなと思います
ビビらず攻めるのが大事です

結論

  • 以下いろいろ書いていますが「タテハメのずり上げ」が最強です
  • 横になりそうなら素直に初期もあり
  • タテハメのずり上げできない台もたまにあるのでできない場合は素直に撤退

タテハメにするかヨコハメにするか決める

  • どちらでもとにかく深くハメていくことを考える
  • GIGOオンクレではどちらも有効
  • タテハメのほうが早いイメージはあるが状況ヨコハメのほうが簡単なケースもある
  • 自分はヨコハメのほうが好き

左右アームどちらか寄せの三角形狙い

  • タテでもヨコでも使える
  • カメラをヨコから見て三角形があればそこにアームを寄せて入れてズリズリと角度をつけていくイメージ
  • V型でどちらの三角形も狙える場合は動く方を見つけてそちらを重点に攻める
    • 動く方によってタテ、ヨコを切り替えていく

ハマっていない方の角狙い

  • 三角が動かない場合に使う
  • 手前がハマって奥が上にある場合は奥の左右どちらかの角をアームを寄せて持ち上げるイメージ
  • 奥を持つことで手前がはまっていくが単純に持ち上げてハマりが浅くなることがあるので注意
  • 三角形がダメでかつ三角形がある場合は浮いている方の角と対象の角をアームを寄せて取ってみると動きがあるかも
  • しっかり角が取れればクリティカルヒットもある一方で個人的には三角取りよりも事故る可能性は高いイメージ
  • あと単純に箱が大きいのと筐体の丸み問題がありすべって角自体取るのが難しい一手だと思う

バー停止からの弾き

  • かなり難しいが三角形に入れても動きがないときに有効
  • ギリギリアームを寄せてバー停止しその反動で本体に爪を当てて当てた方向に動かしていくイメージ
  • とめがけに近いがバー停止させるのがポイント
  • 何とかして動きが欲しい場合の秘密兵器的な一手として覚えておくといいかもしれない

左右アームどちらか寄せの下角狙い

  • 以下にも記載しているがあまりやらない一手
  • 使う場合はハマっている方に三角形がなく、いわゆるバーに箱が設置してしまっている状態、そのときに動きを出したいために使う
  • どちらかアームを寄せて下角を取ることで上にひっぱり上げて無理やりそこに三角形を作る感じ
  • ヨコでもタテでも使えるが自分はタテのときにやることが多い

逆タテハメのアーム寄せ手前角集中攻め

  • これでハマったらとめがけ的な
  • 逆タテの場合筐体すべらせ下角持ちずりあげができる形だがそこから進まないパターンが多い
  • その場合は手前角の方が動きが出そうな場合がある

フィニッシュ、決まり手を考える

  • 一番好きなのは「とめがけ」
  • GIGOオンクレの場合タテでもヨコでもとめがけが使える印象
  • 浮いている方を押してもう片方のアームで下角を引っ張るイメージ
  • タテハメの場合はかなりアームの場所がシビアなので難しいが使える
    • たまにアームの寄せが甘く浮いてる方を抑えられずアームが下に抜けてしまい角を取ってしまう事故もある
    • それでも繰り返していけば確実に取れるフィニッシュだと思う

個人的にあまり使わない手順

  • 両アーム使ってのハマっているほうにアームを入れてズリあげる
  • GIGOオンクレの場合筐体の丸みを活かして箱に本体をすべらせてアームを下に入れてひっぱり上げるテクがある
  • 簡単かつ誰でもできる一方で運要素が強いのと何より攻略している感がないので使わない
  • どうしても動かない場合にはパルプンテ的な要素で使うのはありかも

その他

  • 何をするにしても真ん中を取るよりかはどちらかのアームを寄せたほうが動きはあるイメージ
  • もしかしたら初手のみBCが使えるかも
  • SP の違いによる台の調整は基本ないと思ってはいるがそれは中の人しかわからない
    • アームの開きはどの SP でも同じ
    • アームの強さや捻じればもしかしたら SP によって細かく調整されているかも
    • このあたりはやってみないと何とも
  • この手法はGIGOのオンクレでしか使えない気がする
    • 特にフィニッシュのとめがけはリアルな筐体(UFO10など)+いろいろなフィギュアの箱の形状だとできるケースが限られます
    • ハメるまでの三角取りもリアル店舗だと使えないことが多い、加工制限などで
    • なのでGIGOオンクレでの技術はあくまでもGIGOオンクレだけで通じる技術だと思ったほうがいいかなと思います
    • お店の傾向、筐体、箱の形、重心の違いなど鑑みて自分はそう感じています
  • ネットワークごしにプレイするので通信環境は必ず良いところでやることをおすすめします
    • ためにプレイ中に通信が切れて次のプレイヤーに進んじゃないことがある
    • カメラの切り替えができなくなり詰む
    • 自分はそうですがスマホではなくできればラップトップなどでプレイしたほうが安全です
    • またラップトップ環境でも多少のラグがあるのでラグもしっかり考慮してアームを移動しましょう
  • 側面はまりの設置は詰みかな

追記 2025/10/07

  • ずりあげできるのは縦ハメのみ
    • 逆縦ハメは本体正面の丸みを使ってかなりすべらせることができるが後ろの銀バーにあたってずりあげの限界があるので詰みになる
  • ハマりが浅いときは後ろを狙うと良い
    • 後ろは寄せすぎずに両アームをしっかりいれる
    • バークロスが理想だがバー停止でもOK
    • ハマりが浅いと本体を押してアームが下に入ることもある
  • アームの寄せ方による動きの違い
    • かなり寄せる -> スライドさせるイメージの動き、上に持ち上がるというよりかは横に振る
    • 甘寄せ -> 上にまたは逆方向に引っ張るイメージ、縦ハメでまっすぐ戻したい場合に整地している方にアームを甘寄せすると引っ張ってまっすぐに戻るイメージ

これくらいのハマり+縦設置状態ならまだ後ろを狙うのはあり

横ハメで左アームで下角をスライドしようとしても動かない場合は奥を右アームで狙いもう少し横にするといい

全体的な進め方の流れ

  1. 縦ハメにする
  2. ハマりが浅いなら両アームで後ろを持ち上げてハマりを深くする
  3. ハマりがある程度深くなったら本体滑らせのずりあげを使って更にハマりを深める
    • どちらかの角を更に深めたいならやや寄せの引っ張り上げ
    • かなり角が上がっているなら(いわゆるひし形)くらいになっているならアームを寄せてスライド気味に角を外す
    • かなり深いなら頂点部分を本体押しでもフィニッシュできる
  4. 本体すべらせのずりあげで攻める
    • かなりすべらせるくらい攻めないとずりあがらない
    • 基準は下角の頂点とアームが同じ位置になるくらいか少し奥くらいまで攻める
    • 行き過ぎると本体が頂点を押すのでそのギリギリくらいを攻める

本体滑らせのずりあげが使えないケース

  • 縦ハメで使えないブースもあるので注意
  • 使えるかどうかの判断は本体が箱にそって滑るか実際に確認するしかない
  • おそらく押しが弱い or 箱との相性がありそう
  • 本体滑らせのずりあげができない場合はもう後ろを攻めるしか無い

最後に

GIGOのオンクレはアシストがあるのでそれ頼みで行くのもありですがやっぱり自分で取れるようになると取れたときのうれしさは格段に違うかなと思います

2024年12月5日木曜日

Github Actions の外向けの IP を調べる方法

Github Actions の外向けの IP を調べる方法

概要

/meta API を使います

環境

  • Github API 2022-11-28
  • curl 8.11.0

コマンド

トークンは Github のページから取得してください
IPv4 および IPv6 アドレスが含まれています

curl -L \     
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer ghp_xxxxx" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  https://api.github.com/meta | jq '.actions'

最後に

執筆時点で 4888 個もあったが本当なのだろうか

2024年12月4日水曜日

Bookmarklet で jQuery を使う方法

Bookmarklet で jQuery を使う方法

概要

もしページ内ですでに読み込まれている場合はそのまま使えます
読み込んでいない場合はブックマークレット側で読み込めば使えるようになります

環境

  • Chrome 131.0.6778.86

ブックマークレット

javascript:(function() {
    if (!window.jQuery) {
        let script = document.createElement('script');
        script.src = 'https://code.jquery.com/jquery-3.6.0.min.js';
        script.type = 'text/javascript';
        script.onload = runBookmarklet;
        document.getElementsByTagName('head')[0].appendChild(script);
    } else {
        runBookmarklet();
    }
    function runBookmarklet() {
        alert('jQuery バージョン: ' + $.fn.jquery);
    }
})();

最後に

他のライブラリも同じ仕組みで読み込めると思います
バージョンなどは面倒ですが直接書き込むしかないです

2024年12月3日火曜日

サイト内の画像だけを抽出し表示するブックマークレット

サイト内の画像だけを抽出し表示するブックマークレット

概要

上からずらっと表示します

環境

  • Chrome 131.0.6778.86

ブックマークレット

javascript:(function() {
    const images = Array.from(document.querySelectorAll('img'));
    if (images.length === 0) {
        alert('画像が見つかりませんでした');
        return;
    }
    document.body.innerHTML = '';
    document.body.style.margin = '0';
    document.body.style.padding = '0';
    document.body.style.backgroundColor = 'black';
    images.forEach(img => {
        const newImg = document.createElement('img');
        newImg.src = img.src;
        newImg.style.display = 'block';
        newImg.style.margin = '10px auto';
        newImg.style.maxWidth = '90%';
        newImg.style.height = 'auto';
        document.body.appendChild(newImg);
    });
    alert(`${images.length} 個の画像を表示しました`);
})();

最後に

画像だけシンプルに表示したい場合に使えます
スタイルも全部解除するのでどんなページにも使えるはずです

2024年12月2日月曜日

GIGOのオンクレでプレイ中のプライズのみ表示するブックマークレット

GIGOのオンクレでプレイ中のプライズのみ表示するブックマークレット

概要

ブックマークレットを紹介します
DOM が変わった場合は適宜クラス名などを変更してください

環境

  • Chrome 131.0.6778.86

ブックマークレット

javascript:(function() {
    const targetUlClass = 'prizes__list';
    var allListItems = document.querySelectorAll(`ul.${targetUlClass} > li`);
    allListItems.forEach(function(li) {
        var spans = li.querySelectorAll('span');
        var hasTargetBackground = false;
        spans.forEach(function(span) {
            var bgColor = window.getComputedStyle(span).backgroundColor;
            if (bgColor === 'rgb(255, 226, 108)') {
                hasTargetBackground = true;
            }
        });
        if (hasTargetBackground) {
            li.style.display = '';
        } else {
            li.style.display = 'none';
        }
    });
    var highestIntervalId = setInterval(() => {}, 1000);
    for (var i = 0; i <= highestIntervalId; i++) {
        clearInterval(i);
    }
})();

最後に

ページのリロードする API のコールも停止しているので適宜手動でリロードしてください