Skip to content

Commit 5dfe1db

Browse files
committed
create initial gh-action to push to s3 bucket
1 parent 4ee141c commit 5dfe1db

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

.github/workflows/s3-action.yaml

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: S3 Playground
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- 'v*.*.*'
8+
- anmol/playground-s3 # debug branch
9+
workflow_dispatch:
10+
11+
jobs:
12+
upload:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: Checkout repository
17+
uses: actions/checkout@v3
18+
19+
- name: Setup Node.js
20+
uses: actions/setup-node@v4
21+
with:
22+
node-version: 20
23+
24+
- name: Configure AWS credentials
25+
uses: aws-actions/configure-aws-credentials@v1
26+
with:
27+
aws-access-key-id: ${{ secrets.S3_PLAYGROUND_ACCESS_KEY_ID }}
28+
aws-secret-access-key: ${{ secrets.S3_PLAYGROUND_SECRET_ACCESS_KEY }}
29+
aws-region: 'us-east-1'
30+
31+
- name: Install AWS CLI v2
32+
run: |
33+
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o /tmp/awscliv2.zip
34+
unzip -q /tmp/awscliv2.zip -d /tmp
35+
rm /tmp/awscliv2.zip
36+
sudo /tmp/aws/install
37+
rm -rf /tmp/aws/
38+
39+
- name: Install tar
40+
run: sudo apt-get update && sudo apt-get install -y tar
41+
42+
- name: Determine Archive Name
43+
run: |
44+
# Check if triggered by a tag (e.g., v1.0.0)
45+
if [[ "${{ github.ref }}" == refs/tags/* ]]; then
46+
VERSION_TAG="${{ github.ref_name }}"
47+
TARBALL_NAME="${VERSION_TAG}.tar.gz"
48+
else
49+
COMMIT_HASH=$(git rev-parse --short HEAD)
50+
TARBALL_NAME="${COMMIT_HASH}.tar.gz"
51+
fi
52+
echo "TARBALL_NAME=$TARBALL_NAME" >> $GITHUB_ENV
53+
54+
- name: Create Tarball
55+
run: |
56+
tar -czf "$TARBALL_NAME" ./ --exclude=".git"
57+
58+
- name: Upload Tarball to S3
59+
run: |
60+
aws s3 cp "$TARBALL_NAME" "s3://$AWS_S3_BUCKET/create-hyperweb-app/$TARBALL_NAME" --acl public-read
61+
echo "Tarball uploaded: https://$AWS_S3_BUCKET.s3.amazonaws.com/create-hyperweb-app/$TARBALL_NAME"
62+
env:
63+
AWS_DEFAULT_REGION: 'us-east-1'
64+
AWS_ACCESS_KEY_ID: ${{ secrets.S3_PLAYGROUND_ACCESS_KEY_ID }}
65+
AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_PLAYGROUND_SECRET_ACCESS_KEY }}
66+
AWS_S3_BUCKET: 'hyperweb-playground'
67+
68+
- name: Update latest.tar.gz (Only on Main)
69+
if: github.ref == 'refs/heads/main'
70+
run: |
71+
aws s3 cp "$TARBALL_NAME" "s3://$AWS_S3_BUCKET/create-hyperweb-app/latest.tar.gz" --acl public-read
72+
echo "Latest tarball updated: https://$AWS_S3_BUCKET.s3.amazonaws.com/create-hyperweb-app/latest.tar.gz"
73+
env:
74+
AWS_DEFAULT_REGION: 'us-east-1'
75+
AWS_ACCESS_KEY_ID: ${{ secrets.S3_PLAYGROUND_ACCESS_KEY_ID }}
76+
AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_PLAYGROUND_SECRET_ACCESS_KEY }}
77+
AWS_S3_BUCKET: 'hyperweb-playground'
78+

0 commit comments

Comments
 (0)