シェルスクリプトを実行する方法は?

JeffMinsungKim
├── .github
│   └── workflows
│       ├── cd.yml
│       └── ci.yml
├── scripts
│   ├── createDevEBAppVersion.sh
│   └── createProdEBAppVersion.sh
├── src

Githubアクションは次のエラーをスローします:

/home/runner/work/_temp/9c99fa0d-20da-49ed-a0af-322f274c13ac.sh:1行目:[refs / heads / development:そのようなファイルまたはディレクトリはありません

/home/runner/work/_temp/9c99fa0d-20da-49ed-a0af-322f274c13ac.sh:5行目:[[refs / heads / development:そのようなファイルまたはディレクトリはありません

name: CD

env:
  PACKAGE_NAME          : "app_${GITHUB_SHA::8}.zip"
  ARTIFACT_ROOT         : "${GITHUB_REF#refs/*/}"
  APPLICATION_NAME      : "example-app-name"
  AWS_ACCESS_KEY_ID     : ${{ secrets.AWS_ACCESS_KEY }}
  AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_KEY }}
  AWS_REGION            : ${{ secrets.AWS_REGION }}
  AWS_BUCKET            : ${{ secrets.AWS_S3_BUCKET_NAME }}

on:
  push:
    branches:
      - develop
    paths-ignore:
      - '**.json'
      - '**.md'
  release:
    tags:
      - 'v*'

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Create ZIP package artifact
      run: git archive --format=zip HEAD -o ${{ env.PACKAGE_NAME }}

    - name: Configure AWS Credentials
      uses: aws-actions/configure-aws-credentials@v1
      with:
        aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }}
        aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }}
        aws-region: ${{ env.AWS_REGION }}

    - name: Copy package artifact to S3 bucket
      run: |
        aws s3 cp ${{ env.PACKAGE_NAME }} s3://${{ env.AWS_BUCKET }}/${{ env.APPLICATION_NAME }}/
        echo "✔ Artifact uploaded successfully to s3://${{ env.AWS_BUCKET }}/${{ env.APPLICATION_NAME }}/${{ env.PACKAGE_NAME }}"

    - name: Create new ElasticBeanstalk Application Version
      working-directory: scripts
      run : |
        if ["${{ github.ref }}" == "refs/heads/develop"]; then
          chmod +x ./createDevEBAppVersion.sh
          ./createDevEBAppVersion.sh
        fi
        if [["${{ github.ref }}" == *"refs/tags/v"*]]; then
          chmod +x ./createProdEBAppVersion.sh
          ./createProdEBAppVersion.sh
        fi

    ...

を使わずに試しましたworking-directoryが、うまくいきませんでした。

#!/usr/bin/env bash

aws elasticbeanstalk create-application-version \
--application-name ${{ env.APPLICATION_NAME }} \
--source-bundle S3Bucket="${{ env.AWS_BUCKET }}",S3Key="${{ env.APPLICATION_NAME }}/${{ env.PACKAGE_NAME }}" \
--version-label "${{ env.PACKAGE_NAME }}" \
--description "Application version created from https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID"
echo "✔ Deployment triggered successfully."

CIでファイルの検索に問題があったようです。どうすれば実行できcreateDevEBAppVersion.shますか?

エドワードトムソン

エラーメッセージは次のとおりです。

/home/runner/work/_temp/9c99fa0d-20da-49ed-a0af-322f274c13ac.sh: line 1: [refs/heads/develop: No such file or directory

実行しようとして[refs/heads/develop失敗します。根本的な原因は、ブラケットとテストの間にスペースがないことです。あなたが欲しい:

if [ "${{ github.ref }}" == "refs/heads/develop" ]; then

(5行目も同じです。)

これifは、Bourne Shellで、評価するコマンド実際に実行するためです。式を評価しているように見えますが、実際には[というコマンドに式を渡しています

% ls -Flas /bin/\[
 8 -rwxr-xr-x  1 root  wheel  22704 May  4  2019 /bin/[*

これは多くの場合、へのシンボリックリンク(またはハードリンク)/bin/testであり、bashやzshなどの一部のシェルでは、[実際にはシェルが組み込まれています。

% which '['
[: shell built-in command

ただし、それでもコマンドのように動作し、構文的にはスペースが必要です。理由:

if [ true ]; then ...

[コマンド(またはshell-builtin)を実行して、コマンドを評価し/bin/trueます。そして

if [true ]; then ...

存在しない[trueコマンドを実行しようとします

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

DjangoシェルからPythonスクリプトを実行する方法は?

シェルスクリプトでJavaファイルを実行する方法

Ansibleで複数行のシェルスクリプトを実行する方法

dockerfilesCMDを使用してシェルスクリプトを実行する方法

Xcodeのシェルスクリプトファイルからスクリプトを実行する方法は?

Makefileでサブシェルスクリプトを実行する方法は?

djangoでスクリプトシェルを実行する方法

シェルでPythonスクリプトをsuして実行する方法は?

Flaskアプリからシェルスクリプトを実行する方法

Dockerの実行中にシェルスクリプトを実行する方法

n行のシェルスクリプトを実行する

シェルスクリプトでSQLを実行する方法

gitcommitでシェルスクリプトを実行する方法

AutoIT-シェルスクリプトを実行する方法

シェルスクリプトを使用して複数行のmysqlクエリを実行する方法は?

Ubuntu-touchでシェルスクリプトを実行する方法は?

gitcommitでシェルスクリプトを実行する方法

シェルを使用してPHPスクリプトを実行する方法

シェルスクリプト内でシェルスクリプトを実行する方法

bashスクリプト内からループでシェルコマンドを実行する方法は?

PHPでシェルスクリプトを実行する方法

Gradleを使用してシェルスクリプトを実行する方法

AppleScriptからシェルスクリプトを実行する方法は?

soapui groovyスクリプトからシェルスクリプトを実行する方法は?

シェルスクリプトを実行する方法は?

シェルスクリプト:2つのプログラムをループ実行する方法は?

私のウェブサイトのシェルでphpスクリプトを実行する方法は?

kotlinスクリプトからシェルツールを実行する方法

特定のgitcommitでシェルスクリプトを実行する方法は?

TOP 一覧

  1. 1

    Unity:未知のスクリプトをGameObject(カスタムエディター)に動的にアタッチする方法

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    Ansibleで複数行のシェルスクリプトを実行する方法

  4. 4

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  5. 5

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  6. 6

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  7. 7

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  8. 8

    Chromeウェブアプリのウェブビューの高さの問題

  9. 9

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  10. 10

    Windows 10の起動時間:以前は20秒でしたが、現在は6〜8倍になっています

  11. 11

    Reactでclsxを使用する方法

  12. 12

    ファイル内の2つのマーカー間のテキストを、別のファイルのテキストのセクションに置き換えるにはどうすればよいですか?

  13. 13

    MLでのデータ前処理の背後にある直感

  14. 14

    グラフからテーブルに条件付き書式を適用するにはどうすればよいですか?

  15. 15

    Pythonを使用して同じ列の同じ値の間の時差を取得する方法

  16. 16

    mutate_allとifelseを組み合わせるにはどうすればよいですか

  17. 17

    ネットワークグラフで、ネットワークコンポーネントにカーソルを合わせたときに、それらを強調表示するにはどうすればよいですか?

  18. 18

    テキストフィールドの値に基づいて UIslider を移動します

  19. 19

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  20. 20

    PowerShellの分割ファイルへのヘッダーの追加

  21. 21

    ソートされた検索、ターゲット値未満の数をカウント

ホットタグ

アーカイブ