├── .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]
コメントを追加