Skip to content

Commit 978230f

Browse files
Merge pull request #19 from devlopersabbir/sabbir
Sabbir
2 parents ffb48e1 + a1ca58b commit 978230f

19 files changed

Lines changed: 1087 additions & 114 deletions

.dockerignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ websites
1818
example
1919
docker
2020
temp
21-
tests
21+
tests
22+
executeme.pem

.env.example

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,7 @@
1-
PORT=6000
1+
2+
PORT=6000
3+
DOCKER_USERNAME=""
4+
DOCKER_PASSWORD=""
5+
VSP_HOST=""
6+
VPS_USER=""
7+
VPS_PRIVATE_KEY="example key"
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
name: "Setup and Load Environment"
2+
description: "Generates .env from inputs and exports to GITHUB_ENV"
3+
4+
inputs:
5+
DOCKER_USERNAME:
6+
description: "Docker username"
7+
required: true
8+
PACKAGE_NAME:
9+
description: "Package name"
10+
required: true
11+
PACKAGE_VERSION:
12+
description: "Package version"
13+
required: true
14+
EMAIL:
15+
description: "Email"
16+
required: true
17+
PORT:
18+
description: "Port"
19+
required: true
20+
IMAGE_TAG:
21+
description: "Image tag"
22+
required: true
23+
DOCKER_PASSWORD:
24+
description: "Docker password"
25+
required: true
26+
VPS_HOST:
27+
description: "VPS host"
28+
required: true
29+
VPS_USER:
30+
description: "VPS user"
31+
required: true
32+
VPS_SSH_PRIVATE_KEY:
33+
description: "VPS SSH private key"
34+
required: true
35+
36+
runs:
37+
using: "composite"
38+
steps:
39+
- name: 🔧 Generate .env file
40+
shell: bash
41+
run: |
42+
ENV_FILE="$GITHUB_WORKSPACE/.env"
43+
echo "🔧 Creating .env file at $ENV_FILE..."
44+
45+
# Create the .env file with all variables
46+
cat <<'EOF' > "$ENV_FILE"
47+
DOCKER_USERNAME=${{ inputs.DOCKER_USERNAME }}
48+
PACKAGE_NAME=${{ inputs.PACKAGE_NAME }}
49+
PACKAGE_VERSION=${{ inputs.PACKAGE_VERSION }}
50+
EMAIL=${{ inputs.EMAIL }}
51+
52+
NODE_ENV=development
53+
54+
BASE_URL=${{ inputs.BASE_URL }}
55+
56+
PORT=${{ inputs.PORT }}
57+
58+
IMAGE_TAG=${{ inputs.IMAGE_TAG }}
59+
DOCKER_PASSWORD=${{ inputs.DOCKER_PASSWORD }}
60+
61+
VPS_HOST=${{ inputs.VPS_HOST }}
62+
VPS_USER=${{ inputs.VPS_USER }}
63+
EOF
64+
65+
# Handle SSH private key separately (write to file for Docker usage)
66+
echo '${{ inputs.VPS_SSH_PRIVATE_KEY }}' > "$GITHUB_WORKSPACE/deploy_key.pem"
67+
chmod 600 "$GITHUB_WORKSPACE/deploy_key.pem"
68+
echo "VPS_SSH_PRIVATE_KEY_FILE=$GITHUB_WORKSPACE/deploy_key.pem" >> "$ENV_FILE"
69+
70+
# Verify file creation
71+
if [ -f "$ENV_FILE" ] && [ -s "$ENV_FILE" ]; then
72+
FILE_SIZE=$(wc -c < "$ENV_FILE")
73+
echo "✅ .env file created successfully (size: ${FILE_SIZE} bytes)"
74+
echo "📁 Location: $ENV_FILE"
75+
echo "🔑 SSH key written to: ssh_key.pem"
76+
else
77+
echo "❌ Error: .env file creation failed"
78+
exit 1
79+
fi
80+
81+
- name: 📤 Export variables to GITHUB_ENV (simple method)
82+
shell: bash
83+
env:
84+
DOCKER_USERNAME: ${{ inputs.DOCKER_USERNAME }}
85+
PACKAGE_NAME: ${{ inputs.PACKAGE_NAME }}
86+
PACKAGE_VERSION: ${{ inputs.PACKAGE_VERSION }}
87+
EMAIL: ${{ inputs.EMAIL }}
88+
89+
BASE_URL: ${{ inputs.BASE_URL }}
90+
PORT: ${{ inputs.PORT }}
91+
92+
IMAGE_TAG: ${{ inputs.IMAGE_TAG }}
93+
DOCKER_PASSWORD: ${{ inputs.DOCKER_PASSWORD }}
94+
95+
VPS_HOST: ${{ inputs.VPS_HOST }}
96+
VPS_USER: ${{ inputs.VPS_USER }}
97+
run: |
98+
echo "📤 Exporting environment variables to GITHUB_ENV using env method..."
99+
100+
echo "PACKAGE_NAME=$PACKAGE_NAME" >> $GITHUB_ENV
101+
echo "PACKAGE_VERSION=$PACKAGE_VERSION" >> $GITHUB_ENV
102+
echo "DOCKER_USERNAME=$DOCKER_USERNAME" >> $GITHUB_ENV
103+
echo "EMAIL=$EMAIL" >> $GITHUB_ENV
104+
echo "NODE_ENV=development" >> $GITHUB_ENV
105+
106+
107+
echo "BASE_URL=$BASE_URL" >> $GITHUB_ENV
108+
echo "PORT=$PORT" >> $GITHUB_ENV
109+
110+
echo "IMAGE_TAG=$IMAGE_TAG" >> $GITHUB_ENV
111+
echo "DOCKER_PASSWORD=$DOCKER_PASSWORD" >> $GITHUB_ENV
112+
113+
echo "VPS_HOST=$VPS_HOST" >> $GITHUB_ENV
114+
echo "VPS_USER=$VPS_USER" >> $GITHUB_ENV
115+
116+
echo "✅ All environment variables exported successfully"
117+
118+
- name: 🔍 Verify setup
119+
shell: bash
120+
run: |
121+
ENV_FILE="$GITHUB_WORKSPACE/.env"
122+
123+
if [ -f "$ENV_FILE" ]; then
124+
VAR_COUNT=$(grep -c '^[A-Z]' "$ENV_FILE" 2>/dev/null || echo "0")
125+
FILE_SIZE=$(wc -c < "$ENV_FILE")
126+
echo "🎉 Environment setup complete!"
127+
echo "📁 .env file: $ENV_FILE"
128+
echo "🔢 Variables count: $VAR_COUNT"
129+
echo "📊 File size: ${FILE_SIZE} bytes"
130+
echo "✅ Ready to use in subsequent steps"
131+
132+
# Test a few key variables to ensure they're available
133+
echo "🧪 Testing variable availability:"
134+
echo " PACKAGE_NAME: ${PACKAGE_NAME:-'NOT_SET'}"
135+
echo " PACKAGE_VERSION: ${PACKAGE_VERSION:-'NOT_SET'}"
136+
echo " DOCKER_USERNAME: ${DOCKER_USERNAME:-'NOT_SET'}"
137+
echo " SSH Key file: ${VPS_SSH_PRIVATE_KEY_FILE:-'NOT_SET'}"
138+
else
139+
echo "❌ Error: .env file missing after generation"
140+
exit 1
141+
fi

0 commit comments

Comments
 (0)