https://github.com/notcoffee418/s3-zip-upload
GitHub Action to create a zip file from a folder and upload it to S3
https://github.com/notcoffee418/s3-zip-upload
Last synced: 12 months ago
JSON representation
GitHub Action to create a zip file from a folder and upload it to S3
- Host: GitHub
- URL: https://github.com/notcoffee418/s3-zip-upload
- Owner: NotCoffee418
- License: mit
- Created: 2022-12-12T19:54:59.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-09-27T15:37:35.000Z (almost 2 years ago)
- Last Synced: 2024-10-31T10:38:37.631Z (over 1 year ago)
- Language: JavaScript
- Size: 6.18 MB
- Stars: 7
- Watchers: 2
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# S3 Zip Upload Action
A GitHub Action for easily creating a zip file from a folder and uploading it to S3.
This action can also be used to upload a pre-made zip file or any other single file.
It supports Linux, Windows, and any other `runs-on` that can run Node. with content
type and user defined meta data
## Features
- Creates zip files and uploads them to S3
- Can upload pre-made zip files or any other single files
- Supports Linux, Windows, and other `runs-on` that can run Node
- Easy to configure and use
## Inputs
All inputs are environment variables. See the example below for usage.
## Required Parameters
| Parameter | Description | Example |
| --------------- | ---------------------------- | ------------------------ |
| `AWS_SECRET_ID` | AWS access key ID | `AKIAIOSFODNN7EXAMPLE` |
| `AWS_SECRET_KEY`| AWS secret access key | `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY` |
| `BUCKET_NAME` | AWS bucket name | `my-bucket` |
| `SOURCE_PATH` | Source file or directory | `/path/to/source` |
| `DEST_FILE` | Output file name or path | `destination-file.zip` |
## Optional Parameters
| Parameter | Description | Default | Example |
| --------------- | ---------------------------- | ------------------------ | ------------------- |
| `STORAGE_CLASS` | AWS storage class | `STANDARD` | `ONEZONE_IA` |
| `AWS_REGION` | AWS region | `eu-central-1` | `us-west-2` |
| `SOURCE_MODE` | Source mode | `ZIP` | `FILE` |
| `S3_ENDPOINT` | S3 endpoint override | None | `https://s3.example.com` |
| `CONTENT_TYPE` | Content type metadata | `application/zip` (for zip uploads) | `application/x-msdownload` |
| `METADATA_KEY` | user defined meta data key | None | `x-amz-meta-version` |
| `METADATA_VALUE` | user defined meta data value | None | `9.99` |
## Example usage
```yaml
name: Upload to S3
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Upload ZIP to S3
uses: NotCoffee418/s3-zip-upload@v1.5
env:
AWS_SECRET_ID: ${{ secrets.AWS_SECRET_ID }}
AWS_SECRET_KEY: ${{ secrets.AWS_SECRET_KEY }}
BUCKET_NAME: ${{ secrets.BUCKET_NAME }}
AWS_REGION: eu-central-1
SOURCE_MODE: ZIP
SOURCE_PATH: ./debug-override
DEST_FILE: debug-action.zip
CONTENT_TYPE: application/x-msdownload
METADATA_KEY: x-amz-meta-version
METADATA_VALUE: 9.99
```
## Manual action tests
Copy .env.example to .env and modify it.
Commands to run locally:
```bash
npm run debug # run using your .env configuration
npm run debug file # uploads a dummy file as debug-override/dog1.jpg
npm run debug zip # uploads a dummy folder as debug-override/debug-action.zip
```
## Releasing new version
1. Update the version in `package.json`
2. `npm run build`
3. Create a new tag and release on GitHub