From 613c1b5ee90bc470af4dee64bf0f99dfe327146d Mon Sep 17 00:00:00 2001 From: Hidetake Iwata Date: Sat, 23 Apr 2022 12:53:45 +0900 Subject: [PATCH 1/4] Add upload-static-assets --- .github/workflows/upload-static-assets.yaml | 27 +++++++++++++++++++++ upload-static-assets/README.md | 7 ++++++ upload-static-assets/action.yaml | 24 ++++++++++++++++++ upload-static-assets/main.sh | 17 +++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 .github/workflows/upload-static-assets.yaml create mode 100644 upload-static-assets/README.md create mode 100644 upload-static-assets/action.yaml create mode 100644 upload-static-assets/main.sh diff --git a/.github/workflows/upload-static-assets.yaml b/.github/workflows/upload-static-assets.yaml new file mode 100644 index 000000000..03dbb32bc --- /dev/null +++ b/.github/workflows/upload-static-assets.yaml @@ -0,0 +1,27 @@ +name: upload-static-assets + +on: + push: + branches: [main] + paths: + - upload-static-assets/** + - '*.json' + - .github/workflows/upload-static-assets.yaml + pull_request: + branches: [main] + paths: + - upload-static-assets/** + - '*.json' + - .github/workflows/upload-static-assets.yaml + +jobs: + test: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v3 + - uses: ./upload-static-assets + with: + source-image: nginx + source-path: /usr/share/nginx/html + bucket-uri: s3://bucket/dir diff --git a/upload-static-assets/README.md b/upload-static-assets/README.md new file mode 100644 index 000000000..318903347 --- /dev/null +++ b/upload-static-assets/README.md @@ -0,0 +1,7 @@ +# upload-static-assets + +This is an action to extract static assets in a Docker image and upload them to S3 bucket. + +## Getting Started + +TODO diff --git a/upload-static-assets/action.yaml b/upload-static-assets/action.yaml new file mode 100644 index 000000000..3ac8936af --- /dev/null +++ b/upload-static-assets/action.yaml @@ -0,0 +1,24 @@ +name: upload-static-assets +description: upload static assets from Docker image to S3 bucket + +inputs: + source-image: + description: source of Docker image + required: true + source-path: + description: source path in the Docker image + required: true + bucket-uri: + description: URI of the destination bucket, e.g. s3://bucket/dir + required: true + +runs: + using: composite + steps: + - id: main + shell: bash + run: ${{ github.action_path }}/main.sh + env: + SOURCE_IMAGE: ${{ inputs.source-image }} + SOURCE_PATH: ${{ inputs.source-path }} + BUCKET_URI: ${{ inputs.bucket-uri }} diff --git a/upload-static-assets/main.sh b/upload-static-assets/main.sh new file mode 100644 index 000000000..cb1835622 --- /dev/null +++ b/upload-static-assets/main.sh @@ -0,0 +1,17 @@ +#/bin/bash +set -o pipefail +set -eux + +content_dir="$(mktemp -d)" +container_id="$(docker create "$SOURCE_IMAGE")" +docker cp "$container_id:$SOURCE_PATH" "$content_dir" +docker rm "$container_id" + +docker run --rm amazon/aws-cli:2 --version +docker run --rm \ + -v /tmp:/tmp \ + -e AWS_ACCESS_KEY_ID \ + -e AWS_SECRET_ACCESS_KEY \ + -e AWS_SESSION_TOKEN \ + amazon/aws-cli:2 \ + s3 sync --no-progress "$content_dir" "$BUCKET_URI" From 782efb9eeff819a07711594d6d4a5c650318c8f9 Mon Sep 17 00:00:00 2001 From: Hidetake Iwata Date: Sat, 23 Apr 2022 12:56:15 +0900 Subject: [PATCH 2/4] Update action.yaml --- upload-static-assets/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upload-static-assets/action.yaml b/upload-static-assets/action.yaml index 3ac8936af..e54d9b916 100644 --- a/upload-static-assets/action.yaml +++ b/upload-static-assets/action.yaml @@ -17,7 +17,7 @@ runs: steps: - id: main shell: bash - run: ${{ github.action_path }}/main.sh + run: exec bash ${{ github.action_path }}/main.sh env: SOURCE_IMAGE: ${{ inputs.source-image }} SOURCE_PATH: ${{ inputs.source-path }} From 25ec7139cd2d3a4b7326534c16cbe18a49d73562 Mon Sep 17 00:00:00 2001 From: Hidetake Iwata Date: Sat, 23 Apr 2022 13:01:04 +0900 Subject: [PATCH 3/4] Update main.sh --- upload-static-assets/main.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/upload-static-assets/main.sh b/upload-static-assets/main.sh index cb1835622..3fc7ba1be 100644 --- a/upload-static-assets/main.sh +++ b/upload-static-assets/main.sh @@ -7,11 +7,13 @@ container_id="$(docker create "$SOURCE_IMAGE")" docker cp "$container_id:$SOURCE_PATH" "$content_dir" docker rm "$container_id" +find "$content_dir" -type f + docker run --rm amazon/aws-cli:2 --version docker run --rm \ -v /tmp:/tmp \ -e AWS_ACCESS_KEY_ID \ -e AWS_SECRET_ACCESS_KEY \ -e AWS_SESSION_TOKEN \ - amazon/aws-cli:2 \ + amazon/aws-cli:latest \ s3 sync --no-progress "$content_dir" "$BUCKET_URI" From 0c36074a952ae085716558b58be2fd35a9ab4935 Mon Sep 17 00:00:00 2001 From: Hidetake Iwata Date: Sat, 23 Apr 2022 13:02:27 +0900 Subject: [PATCH 4/4] Update main.sh --- upload-static-assets/main.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upload-static-assets/main.sh b/upload-static-assets/main.sh index 3fc7ba1be..2b0df1cc2 100644 --- a/upload-static-assets/main.sh +++ b/upload-static-assets/main.sh @@ -9,7 +9,7 @@ docker rm "$container_id" find "$content_dir" -type f -docker run --rm amazon/aws-cli:2 --version +docker run --rm amazon/aws-cli:latest --version docker run --rm \ -v /tmp:/tmp \ -e AWS_ACCESS_KEY_ID \