質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

Q&A

0回答

1046閲覧

CI/CD内でshellを実行してjsonファイルを作成したい

NakaShun_1129

総合スコア20

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

0グッド

1クリップ

投稿2021/03/29 10:46

CI/CD内でshellを実行してjsonファイルを作成したいのですが、上手くいかずに困っています。

現在、github Actionsを使っていまして、その中でデプロイに必要なデータをもつJSONファイルを作成したいと思っています。
(Actions Secretsに登録されている値をシェルの中で使用し、jsonファイルを作成します。)

しかし、ファイルが作成されずにdeployができません。

ターミナル上で以下のコマンドを実行すると問題なくファイルが作成されます。

sudo

1 2sudo bash deployment/setup_claspjson.sh

何か問題があるのでしょうか?

やりたいことはこちらの記事と同じです。
全く同じやり方でも上手くいかなかったのでjsonファイルの生成方法を少し変えています。

githubcAtions ymlファイル

dev-deploy.yml # This is a basic workflow to help you get started with Actions name: Dev-CI env: ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} ID_TOKEN: ${{ secrets.ID_TOKEN }} REFRESH_TOKEN: ${{ secrets.REFRESH_TOKEN }} CLIENT_ID: ${{ secrets.CLIENT_ID }} CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }} SCRIPT_ID: ${{ secrets.SCRIPT_ID_DEV}} # Controls when the action will run. Triggers the workflow on push or pull request # events but only for the main branch on: push: branches: [ dev ] # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: merged-action: runs-on: ubuntu-latest steps: - name: pull uses: actions/checkout@v2 with: ref: ${{github.event.pull_request.head.ref}} - name: Node Install run: | sudo apt install nodejs sudo apt install npm - name: Node Version run: | echo "Node $(node -v)" echo "Npm $(npm -v)" - name: clasp install run: sudo npm i @google/clasp -g - name: Generate ~/.clasprc.json run: | bash deployment/setup.sh - name: Generate ~/.clasp.json run: | bash deployment/setup_claspjson.sh - name: push run: | sudo clasp push --force

shellファイル

setup.sh #!/bin/sh cat > /.clasprc.json << LOGIN { "token": { "access_token": "$ACCESS_TOKEN", "refresh_token": "$REFRESH_TOKEN", "scope": "https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/service.management https://www.googleapis.com/auth/script.deployments https://www.googleapis.com/auth/logging.read https://www.googleapis.com/auth/script.webapp.deploy https://www.googleapis.com/auth/userinfo.profile openid https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/script.projects https://www.googleapis.com/auth/drive.metadata.readonly", "token_type": "Bearer", "id_token": "$ID_TOKEN", "expiry_date": 1595752666211 }, "oauth2ClientSettings": { "clientId": "$CLIENT_ID", "clientSecret": "$CLIENT_SECRET", "redirectUri": "http://localhost" }, "isLocalCreds": false } LOGIN
setup_claspjson.sh #!/bin/sh cat > ~/.clasp.json << CLASPJSON { "scriptId": "$SCRIPT_ID" } CLASPJSON

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yurak

2021/05/03 15:55

> しかし、ファイルが作成されずにdeployができません。 Github Action 実行時のログはどう出力されていますでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問