ゆとりSEは副業がしたい

ゆとりSE

RPAやPythonをはじめとした情報系の発信やガジェットの紹介などがメインです

【GitHub Actions】特定の条件下のみジョブ実行: 効率的なCI/CDパイプラインの構築

GitHub Actionsで特定の条件下でジョブを実行する

GitHub Actionsを使用すると、コードの変更に応じて自動的にビルド、テスト、デプロイなどのジョブを実行できます。ただし、すべての変更に対してジョブを実行する必要はありません。特定の条件下でのみジョブを実行するように設定することができます。

以下では、GitHub Actionsでdevelopブランチからmainブランチへのプルリクエストが承認された場合のみ、ジョブを実行するようにする方法について説明します。

条件式を使用して特定の条件下でジョブを実行する

GitHub Actionsでは、on トリガーと if 条件を組み合わせることで、特定の条件下でのみジョブを実行できます。以下は、pull_request イベントをトリガーとし、プルリクエストがdevelopブランチからmainブランチへ向けられ、かつ、そのプルリクエストが承認された場合にジョブが実行されるようにする設定例です。

name: Your Workflow Name

on:
  pull_request:
    branches:
      - main
    types:
      - closed

jobs:
  your_job:
    if: github.event.pull_request.base.ref == 'main' && github.event.pull_request.head.ref == 'develop' && github.event.pull_request.merged == true
    runs-on: ubuntu-latest

    steps:
      # Your job steps

この設定により、プルリクエストがdevelopブランチからmainブランチへ向けられ、かつ、承認された場合のみジョブが実行されます。

コミットメッセージに適切な情報を含める

GitHub Actionsのワークフローを更新して、特定の条件下でのみ実行するようにした場合、コミットメッセージに適切な情報を含めることが重要です。以下は、適切なコミットメッセージの例です。

Update workflow for approved develop->main PRs

このコミットメッセージでは、GitHub Actionsのワークフローを更新し、developブランチからmainブランチへの承認されたプルリクエストでのみ実行されるようにしたことが簡潔に説明されています。

環境変数を使った条件指定

GitHub Actionsでは、環境変数を使って条件式を指定することもできます。例えば、環境変数TARGET_BRANCHSOURCE_BRANCHを使用して、特定のブランチ間でのプルリクエストにのみジョブを実行するように設定することができます。

jobs:
  your_job:
    if: github.event.pull_request.base.ref == env.TARGET_BRANCH && github.event.pull_request.head.ref == env.SOURCE_BRANCH && github.event.pull_request.merged == true
    runs-on: ubuntu-latest

    steps:
      - name: Set environment variables
        run: |
          echo "TARGET_BRANCH=main" >> $GITHUB_ENV
          echo "SOURCE_BRANCH=develop" >> $GITHUB_ENV
      # Your job steps

この設定では、TARGET_BRANCHSOURCE_BRANCH環境変数を設定し、それらを条件式で使用しています。この方法であれば、条件式を変更する際に環境変数の値を編集するだけで済むため、より柔軟性が向上します

まとめ

GitHub Actionsを使用すると、特定の条件下でのみジョブを実行する方法をGitHub Actionsで実装する方法について説明しました。この方法を使用することで、リソースの節約やワークフローの効率化が期待できます。適切なコミットメッセージを含めることにより、開発者間で変更の目的を簡潔に伝えることができます。GitHub Actionsは柔軟で強力なツールであり、特定の条件に基づいてジョブを実行することで、プロジェクトのニーズに合わせて最適化することが可能です。

【UiPath】アクティビティ3つでUiPathからLINEのメッセージを送信する

f:id:oichiki:20220125234427p:plain

UiPathでLINEを使いたい

UiPathはOutlookGmailを利用してメールを送信することが簡単に実装が可能です。ただ、昨今ではメールよりもLINEが連絡手段としてはメインになっていると思うので、今回はLINEのMessagingAPIを使用してUiPathからLINEを送信する方法を備忘録として残しておきたいと思います。 今回は以前記事にした家計簿ボットのものをそのまま使用して行います。 家計簿ボットについては下記をご覧ください。
autolazy.hatenablog.jp

参考書籍

事前準備

MessagingAPIを使うため事前に準備が必要になります。 LINE Messaging APIでは新規チャネルを作成しMessaging APIを選択します。チャネルを作成したら「Channel access token (long-lived)」と「Your user ID」を控えておいてください。※「Your user ID」は自分のLINEのIDになります。
リクエスト用のJSONを1からキレイに作成するのは少し面倒くさいので、今回はPostmanを使用します。インストールすれば簡単に使用できるので、必要な方は下記よりダウンロードしてください。
www.postman.com

JSONの作成

JSONをtxtファイルとして作成しUiPathのHTTP要求アクティビティを用いることで、簡易的にLINEの送信を行います。 Postmanを開いて下記の通りPOSTを選択し、エンドポイントには以下を設定します。

エンドポイント:https://api.line.me/v2/bot/message/push


次にHeaderタブを選択し、Content-TypeとAuthorizationを入力します。 Content-Typeには「application/json; charset=UTF-8」、Authorizationには先頭に「Bearer 」を付けて先ほど控えた「Channel access token (long-lived)」を入力します。(Bearerの後ろには半角スペースが入ります」

f:id:oichiki:20220125224157p:plain

次にBodyタブを選択し、rawのチェックボックスを選択します。 記載内容は以下の通りです。

f:id:oichiki:20220125224201p:plain

「to」には控えてある「Your user ID」を入力します。 「type」には「text」を入力し、「text」には「{0}」を入力します。一通り記載した後はエディタ右上のBeautifyをクリックするとJSONをキレイに整列してくれます。

この状態でSendをクリックし自分のLINEに「{0}」が送られてきたら準備は完了です。 txtファイル作成前に{0}の箇所以外の中括弧を二重にします。※{ → {{、 } → }} 後はBodyタブで記載したJSONを全選択してtxtファイルに貼り付けます。名前はjson.txtとします。(なんでもいいです)

UiPath側の実装

次はUiPath側の実装です。今回は送信するだけの実装にするので、使用する際はLINEを送りたい箇所に組み込んでいただければと思います。

まず先ほど作成したtxtファイルをプロジェクト直下に配置します。(パスが辿れればどこにおいても構いません)

f:id:oichiki:20220125230011p:plain

今回はHTTP要求のアクティビティを使用するので、インストールされていない場合はパッケージを管理からUiPath.WebAPI.Activityをインストールしてください。 後は下記の通り実装するだけです。

f:id:oichiki:20220125231454p:plain

まずはテキストファイルから読み込むのアクティビティを使用して、JSONのtxtファイルを読み込みます。 読み込んだtxtファイルはメッセージ部分が{0}になっているので、String.Formatを使用して書き換えます。今回は以下のように書き換えています。

String.format(str_json, "UiPathから送信しています")

最後はHTTP要求アクティビティで送信を行います。設定箇所は以下になります。

f:id:oichiki:20220125232450p:plain

エンドポイント:https://api.line.me/v2/bot/message/push
メソッド:POST
本文:str_json ※自身で設定した変数名になります
本文形式:application/json

ヘッダーもPostmanと同じように設定します。

f:id:oichiki:20220125232959p:plain

後は実行して問題なくLINEメッセージが届けば完了です。

まとめ

今回はUiPathからLINEを使用する方法についてまとめました。企業で利用する際はメールがほとんどと思いますが、小さいグループでの運用や個人利用ではLINEの方が便利かと思います。他にも様々なAPIを利用してより便利に使用できるような物があれば、随時記事に残していきたいと思います。

【Python】Windows+VSCode+venvの備忘録

f:id:oichiki:20220110134220p:plain

coconala.com

Anacondaを卒業

Anacondaが有償化されたので、いい機会だと思いvenvでWindowsの仮想環境を構築する手順を記載しておきたいと思います

おすすめ書籍

Pythonをインストール

まずはPythonをインストールします。 venvを使用するためにPythonは3.3以上をインストールする必要がある?そうです。

www.python.org

仮想環境の作成

仮想環境を作成したいディレクトリまで遷移し、以下を実行する。

python -m venv [仮想環境名]

仮想環境のアクティベート

仮想環境を作成したら、その仮想環境をアクティベートします。

cd [仮想環境名]
cd Scripts
activate

ライブラリのインストール

仮想環境を有効化したら使用するライブラリをインストールします。 例:pandasをインストール

pip install pandas

実行

仮想環境がactivateされている状態で.pyファイルを実行するだけです。

python -m xxxxx.py

仮想環境から抜ける

仮想環境から抜ける場合は以下コマンドを使用します。

deactivate

【Amazon】ランキングの商品をサクラチェック!(パソコン・周辺機器:ノートパソコン) #2021/10/16

f:id:oichiki:20211016072905p:plain


今回はパソコン・周辺機器カテゴリ:ノートパソコンのランキングについて情報を取得してみました!
サクラチェッカーで確認も行っていますので、ぜひ参考にしてみてください!
※価格&製品、ショップ情報&地域、ショップ評価は低いと安全です

ASUS ノートパソコン M413DA ( 14インチ / AMD Ryzen 3 3250U /4GB, 128GB…

Amazonレビュー件数:34
Amazonレビュー評価:4.4/5
サクラチェッカー評価:4.39/5
サクラチェッカー価格&製品:0
サクラチェッカーショップ情報&地域:0
サクラチェッカーショップ評価:0

パソコン ノート office付き 15.6インチ Win10搭載 薄型PC ノート 高性能CPU インテル

Amazonレビュー件数:138
Amazonレビュー評価:4.1/5
サクラチェッカー評価:4.11/5
サクラチェッカー価格&製品:35
サクラチェッカーショップ情報&地域:65
サクラチェッカーショップ評価:0

NAT-KU PC ノートパソコン/超軽量 薄型/Windows10Pro 64bit/MS Office2019/メ…

Amazonレビュー件数:40
Amazonレビュー評価:4.1/5
サクラチェッカー評価:3.92/5
サクラチェッカー価格&製品:35
サクラチェッカーショップ情報&地域:65
サクラチェッカーショップ評価:35

CHUWI Herebook Pro 14.1インチ【 日本語キーボード 】 ノートパソコン Win10搭載 薄…

Amazonレビュー件数:37
Amazonレビュー評価:4/5
サクラチェッカー評価:3.76/5
サクラチェッカー価格&製品:35
サクラチェッカーショップ情報&地域:65
サクラチェッカーショップ評価:0

TECLAST F7 Plus 3ノートパソコン 14インチ ノートPC,インテルCeleron N4120,メモリ…

Amazonレビュー件数:14
Amazonレビュー評価:4/5
サクラチェッカー評価:-/5
サクラチェッカー価格&製品:95
サクラチェッカーショップ情報&地域:65
サクラチェッカーショップ評価:0

【2021Newモデル】Alldocube GT Bookノートパソコン14インチ 超軽量 薄型PCノート…

Amazonレビュー件数:31
Amazonレビュー評価:4.5/5
サクラチェッカー評価:2.80/5
サクラチェッカー価格&製品:95
サクラチェッカーショップ情報&地域:65
サクラチェッカーショップ評価:0

CHUWI 11.6インチ最新 ノートパソコン Herebook Air Celeron N4020 Win10搭載…

Amazonレビュー件数:8
Amazonレビュー評価:5/5
サクラチェッカー評価:4.31/5
サクラチェッカー価格&製品:35
サクラチェッカーショップ情報&地域:65
サクラチェッカーショップ評価:0

Dell モバイル2-in-1ノートパソコン Inspiron 14 7415 ペブルグリーン Win10/14FHD…

Amazonレビュー件数:65
Amazonレビュー評価:4.3/5
サクラチェッカー評価:4.29/5
サクラチェッカー価格&製品:0
サクラチェッカーショップ情報&地域:0
サクラチェッカーショップ評価:0

Amazon.co.jp限定】Dell ゲーミングノートパソコン Dell G15 5515 Ryzen Edition フ…

Amazonレビュー件数:7
Amazonレビュー評価:3.9/5
サクラチェッカー評価:3.69/5
サクラチェッカー価格&製品:0
サクラチェッカーショップ情報&地域:0
サクラチェッカーショップ評価:0

インテル Core i7 搭載 ASUS ゲーミングノートパソコン TUF Gaming F17 FX706HM(17.3…

Amazonレビュー件数:86
Amazonレビュー評価:4.3/5
サクラチェッカー評価:4.39/5
サクラチェッカー価格&製品:0
サクラチェッカーショップ情報&地域:0
サクラチェッカーショップ評価:0

まとめ

印象としては中華PCばかりなのにあまりサクラチェッカーの評価が低くなく、製品の質は上がってきているのかもしれませんね。ただMacを強く意識したような画像を使用している製品は評価が低いような印象を受けます。

【マストバイ】2021年度上半期に買ってよかったもの|在宅ワーク|ヴィンランド・サガ|

f:id:oichiki:20211002223250p:plain

2021年に買ってよかったもの

去年に引き続き今年も継続的な緊急事態宣言・蔓延防止措置法で、在宅ワーク中心・おうち時間中心の生活となりました。

そんな生活の中でQOLをあげてくれた物たちを紹介していきます!

Anker Magnetic Cable Holder マグネット式 ケーブルホルダー



在宅ワークが続いたことにより、在宅用端末が増えたりデスク周りの環境を新調する機会が多かった1年かと思います。
私の場合はよく使う配線が増えてしまいデスク上にケーブルで散らかってしまったので、なかなか机上のスペースが有効に使えない状況でした。
このケーブルホルダーを使うことで、ケーブル類を一か所にまとめつつ床に垂らすこともないため、使いやすくかつ省スペースが実現できます。

HUAWEI FreeBuds 4i


FreeBuds 4iはアクティブノイズキャンセリング付きのカナル型ワイヤレスイヤホンです。
色は白・赤・黒・シルバーがあり、シルバーがは落ち着いたグレーのような色合いで特におすすめです!約10時間連続音楽再生が可能の為ほとんどバッテリーを気にする必要がありません。イヤホンの長押し・ダブルタップ操作も可能なのでスマホを操作なしで様々な操作ができ、さらに外部音取込も可能なので、歩きながらやジョギングでの利用にも最適です。
SONYのイヤホンやAirPodsは高くて手が出しづらい方にはコスパ最強のFreeBuds 4iが断然おすすめです。価格は8000円ほどなのでワイヤレスイヤホン選びで迷っている方はぜひ一度お試しください!

ヴィンランド・サガ


ヴィンランド・サガは2019年にアニメ化もされた幸村誠さんの漫画です。ノルマンやヴァイキングなど西洋の物語で、時代背景や主人公をはじめとする登場人物の心情までもが綿密に描かれています。
はじめは単純な戦物かと思う方も多いかもしれませんが、読んでいけばいくほど考えさせられる内容が増え、気付いたころにはどっぷりハマってしまうことは間違いないです。
単純なバトルものに飽き飽きしている方は下記アニメと併せてぜひ一度ご覧ください!



過去のおすすめ紹介はこちら

autolazy.hatenablog.jp

【UiPath】式エディターを使わずにセレクターエディターで変数を使う!(変数で検証可能)

f:id:oichiki:20210812013806p:plain

UiPathのセレクタ編集の小技

この小技を知るまでは、UiPathでセレクタに変数を入れるときに「aaname='"+変数+"'」のようにしていました。

この方法の場合編集画面が式エディターとなってしまうので、セレクターエディターの各機能が使えません。
また変数を使用する必要があるため、アクティビティをテストなどで単体で動作確認する事もできません。

今回は下記サイトを使用して検証し、上記の問題を解決する方法を備忘録的にまとめます。 www.uipath.com

UiPathおすすめ書籍

セレクタエディター概要

UiPath Studio ver2021.4,4におけるセレクタ編集画面は下記のようになっています。

f:id:oichiki:20210812011625p:plain
セレクターエディター
セレクターエディターではその場でセレクタを検証できたり、強調表示でフォーカスを当てて確認する事もできるので、開発を進めるうえでとても便利になります。

より詳細な編集がしたい場合はUI Explorerで編集する必要があります。

セレクターエディターで変数を使用

セレクターエディターを使用しつつ、変数を使用したい場合は、セレクターエディター上のセレクターを編集フォームにおいて変数を代入したい箇所にカーソルがある状態で「CTRL+SPACE」を入力します。
※今回の場合はaaname=''のシングルコーテーションの間にカーソルがある状態
すると以下の画面が表示されます。

f:id:oichiki:20210812011703p:plain
変数を選択
ここで使用する変数を選択するとセレクタエディタが下記のように編集されます。
f:id:oichiki:20210812011903p:plain
セレクターエディター(変数)
画像からaanameの値が「{{text}}」になっていることが分かります。
変数を含むセレクタの検証は既定値の値が使用されるために変数textに既定値を設定します。
検証に利用しているサイトは下記の項目があります。今回は開発を初期値に入れて検証してみます。
f:id:oichiki:20210812012218p:plain
UiPath製品ページ
f:id:oichiki:20210812012408p:plain
既定値設定後にセレクター検証
f:id:oichiki:20210812012524p:plain
強調表示
画像からしっかりセレクターを取得できていることが確認できます。ここで画面に項目「テスト」を既定値にして検証すると、
f:id:oichiki:20210812012716p:plain
既定値:テスト
のように検証失敗となり、変数の既定値の値がセレクターに反映されていることが分かります。

まとめ

今回は「CTRL+SPACE」をセレクターエディター上で入力することで、式エディターを使うことなくセレクターエディターのまま開発が行える事を確認しました。

今後も開発する上でのテクニックなどあれば随時まとめていきたいと思います。

【UiPath】GSuiteアクティビティでスプレッドシートを使う

f:id:oichiki:20210807140325p:plain

GSuiteアクティビティを使う

UiPathではExcelの情報を取得してDataTableに変換してから使用する機会がとても多いです。しかしExcelは基本的にローカルにあるため、それを共有するためにはファイルサーバ上で共有するといったような対応を取る必要があります。

そこでGoogle Spread Sheetを使用することにより、実行端末がどこにあったとしてもインターネットにさえ接続できれば簡単に情報が共有できることが想定されます。

今回はそれを可能にするGSuiteアクティビティについてまとめていきます。

この記事を読むとできること


・UiPathのGsuiteアクティビティからGoogle Spread Sheetの情報を取得する
Google Spread Sheetをデータベースとして利用する

前準備(Google Cloud Platform ※GCP

UiPathの実装に移る前に、下記を実施する必要があります。

GCPの登録
・プロジェクト作成
Google Sheets API の有効化
・サービスアカウントの設定/鍵の発行

これはGCPの設定作業になりますので、適宜検索して実施してください。 私が参考にしたのは下記の記事になります。
blog.pionet.co.jp qiita.com

GSuiteアクティビティ

GSuiteアクティビティはGoogleのアプリケーションをUiPathから簡単に利用することを可能にします。 まずはパッケージをインストールします。

f:id:oichiki:20210616012112p:plain
インストール
インストールが完了すると以下のようなアクティビティを利用可能となります。

f:id:oichiki:20210616012315p:plain
アクティビティ

Excelアプリケーションスコープと同じように、GSuite アプリケーションスコープで処理全体を囲って使用します。 今回はスプレッドシートの内容を読み込んで価格情報を取得し計算する処理を実装します。

また今回はサービスアカウントを使用するため書き込みについても検証します。

サービスアカウントのみを使ってUiPathからスプレッドシートを操作する場合はシート画面を開いて共有のユーザやグループと共有でサービスアカウントのメールアドレスを編集者として追加してください。
f:id:oichiki:20210807133931p:plain
共有

スプレッドシートの内容

スプレッドシートは以下のような情報が記載されています。

f:id:oichiki:20210616013901p:plain
スプレッドシート

ワークフローの内容

ワークフローの処理の流れは以下の通りです。

1.スプレッドシートから価格を取得する
2.ネットスーパーで商品価格を取得する
3.価格を更新する
4.スプレッドシートに書きこむ

ワークフローの実装

今回の実装においてGsuiteアプリケーションスコープのプロパティの入力箇所は以下の通りです。

・キーパス:GCPにて発行した鍵(JSONファイル)のパスを入力します。
・キーの種類:GCPにてJSONを選択したためJSONです
・サービスアカウントのメールアドレス:設定したサービスアカウントのアドレスを入力します
・認証の種類:ServoceAccountKeyを選択します

f:id:oichiki:20210806021640p:plain:h500
Gsuiteアプリケーションスコープ

これで認証関連の設定はOKです。次はスプレッドシートの利用方法です。 スプレッドシート関連のアクティビティはGoogle>GSuite>シートにあります。 今回は読み込みと書き込みを使用するので、範囲を読み込みと範囲に書きこみを使用します。
書き込み範囲/セルの指定以外は同じですので、範囲を読み込みを例に記載します。 設定するプロパティは以下になります。

・シート名:スプレッドシートのシート名を入力します(今回はシート1)
スプレッドシートID:スプレッドシートのドキュメントIDを入力します
 ※参考:https://blog-and-destroy.com/33158
・範囲:読み込みたい範囲を入力します(今回は全体で良いのでブランク)
・出力:結果を格納するDataTable型の変数を入力します

f:id:oichiki:20210806023218p:plain
範囲を読み込み

公式ドキュメントは下記になります。
docs.uipath.com これで読み込みと書き込みの部分は完了です。価格取得/書き込み処理も含めたxamlの全体は下記になります。
f:id:oichiki:20210807134724p:plain
全体

作成したプロジェクトは下記で公開していますので、各値を設定の上ぜひお試しください。 github.com ※設定必要な項目の箇所は入力エラーにしています