Skip to content

Commit ccaa260

Browse files
authored
Update Astro template (#204)
1 parent 77c6949 commit ccaa260

17 files changed

+712
-1080
lines changed

.env

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,20 @@ IMAGES_PREFIX='epita-it'
44
# -- Override the values below with your own in `.env.local`.
55
# -- Leave values empty to use defaults.
66

7-
# Docker ports configuration
7+
# Docker ports
88
# (host ports: "*_PORT"; container ports: "*_DOCKER_PORT")
99
HTTP_PORT=''
1010
HTTP_DOCKER_PORT=''
1111

12-
# Deployment configuration
12+
# Deployment
1313
GITHUB_REPOSITORY_URL=''
1414
GITHUB_SHA=''
1515
VERSION_TAG=''
1616

17-
# Astro configuration
17+
# Astro
1818
ASTRO_SITE_URL=''
1919
ASTRO_BASE_PATH=''
2020
ASTRO_ASSETS_PREFIX=''
2121

22-
# Application configuration
23-
# Add env vars for your application here.
22+
# Application
23+
# (Add env vars for your application here.)

.github/workflows/check.yml

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@ jobs:
5353

5454
steps:
5555

56-
# Steps dependencies
56+
# Dependency steps
5757

5858
- name: Checkout
59-
uses: actions/checkout@v4
59+
uses: actions/checkout@v5
6060

6161
# Execution steps
6262

@@ -70,18 +70,18 @@ jobs:
7070
7171
- name: Build for production
7272
env:
73-
# Build configuration
73+
# Build
7474
BUILD_CHECK: 'true' # Run type checks
75-
# Deployment configuration
75+
# Deployment
7676
GITHUB_REPOSITORY_URL: https://github.com/${{ github.repository }}
7777
GITHUB_SHA: ${{ github.sha }}
7878
VERSION_TAG: ${{ vars.VERSION_TAG }}
79-
# Astro configuration
79+
# Astro
8080
ASTRO_SITE_URL: ${{ vars.ASTRO_SITE_URL }}
8181
ASTRO_BASE_PATH: ${{ vars.ASTRO_BASE_PATH }}
8282
ASTRO_ASSETS_PREFIX: ${{ vars.ASTRO_ASSETS_PREFIX }}
83-
# Application configuration
84-
# Add env vars for your application here.
83+
# Application
84+
# (Add env vars for your application here.)
8585
run: |
8686
# docker compose build
8787
echo '::group::Build details'
@@ -116,10 +116,10 @@ jobs:
116116

117117
steps:
118118

119-
# Steps dependencies
119+
# Dependency steps
120120

121121
- name: Checkout
122-
uses: actions/checkout@v4
122+
uses: actions/checkout@v5
123123

124124
# Execution steps
125125

@@ -133,16 +133,16 @@ jobs:
133133
134134
- name: Build for unit tests
135135
env:
136-
# Deployment configuration
136+
# Deployment
137137
GITHUB_REPOSITORY_URL: https://github.com/${{ github.repository }}
138138
GITHUB_SHA: ${{ github.sha }}
139139
VERSION_TAG: ${{ vars.VERSION_TAG }}
140-
# Astro configuration
140+
# Astro
141141
ASTRO_SITE_URL: ${{ vars.ASTRO_SITE_URL }}
142142
ASTRO_BASE_PATH: ${{ vars.ASTRO_BASE_PATH }}
143143
ASTRO_ASSETS_PREFIX: ${{ vars.ASTRO_ASSETS_PREFIX }}
144-
# Application configuration
145-
# Add env vars for your application here.
144+
# Application
145+
# (Add env vars for your application here.)
146146
run: |
147147
# docker compose build
148148
echo '::group::Build details'
@@ -229,10 +229,10 @@ jobs:
229229

230230
steps:
231231

232-
# Steps dependencies
232+
# Dependency steps
233233

234234
- name: Checkout
235-
uses: actions/checkout@v4
235+
uses: actions/checkout@v5
236236

237237
# Execution steps
238238

@@ -246,16 +246,16 @@ jobs:
246246
247247
- name: Build for E2E tests
248248
env:
249-
# Deployment configuration
249+
# Deployment
250250
GITHUB_REPOSITORY_URL: https://github.com/${{ github.repository }}
251251
GITHUB_SHA: ${{ github.sha }}
252252
VERSION_TAG: ${{ vars.VERSION_TAG }}
253-
# Astro configuration
253+
# Astro
254254
ASTRO_SITE_URL: ${{ vars.ASTRO_SITE_URL }}
255255
ASTRO_BASE_PATH: ${{ vars.ASTRO_BASE_PATH }}
256256
ASTRO_ASSETS_PREFIX: ${{ vars.ASTRO_ASSETS_PREFIX }}
257-
# Application configuration
258-
# Add env vars for your application here.
257+
# Application
258+
# (Add env vars for your application here.)
259259
run: |
260260
# docker compose build
261261
echo '::group::Build details'

.github/workflows/deploy.yml

Lines changed: 52 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ name: Deploy CD
66
# - ASTRO_BASE_PATH
77
# - ASTRO_ASSETS_PREFIX
88

9-
# GitHub secrets: N/A
9+
# GitHub secrets:
10+
# - CONFIG_PROD (optional)
1011

1112
on:
1213

@@ -50,7 +51,45 @@ jobs:
5051
# Dependency steps
5152

5253
- name: Checkout
53-
uses: actions/checkout@v4
54+
uses: actions/checkout@v5
55+
56+
- name: Install jq
57+
run: |
58+
# apt-get install jq
59+
sudo apt-get -q update
60+
sudo apt-get -qy install --no-install-recommends jq
61+
62+
# Preparation steps
63+
64+
- name: Load app config in environment
65+
env:
66+
CONFIG_PROD: ${{ secrets.CONFIG_PROD }}
67+
GITHUB_REPOSITORY: ${{ github.repository }}
68+
GITHUB_SHA: ${{ github.sha }}
69+
GITHUB_REF_NAME: ${{ github.ref_name }}
70+
GITHUB_VARS: ${{ toJson(vars) }}
71+
run: |
72+
# Load app config in environment
73+
74+
# Load shell functions to load app config variables
75+
. ./.github/workflows/scripts/load_app_config_functions.sh
76+
77+
echo '::group::Load app config variables'
78+
79+
# Deployment
80+
load_var 'GITHUB_REPOSITORY_URL' 'false' "https://github.com/${GITHUB_REPOSITORY}"
81+
load_var 'GITHUB_SHA' 'false' "${GITHUB_SHA}"
82+
load_var 'VERSION_TAG' 'true' "${GITHUB_REF_NAME}"
83+
84+
# Astro
85+
load_var 'ASTRO_SITE_URL' 'true'
86+
load_var 'ASTRO_BASE_PATH' 'true'
87+
load_var 'ASTRO_ASSETS_PREFIX' 'true'
88+
89+
# Application
90+
# (Load env vars for your application here.)
91+
92+
echo '::endgroup::'
5493
5594
# Execution steps
5695

@@ -64,18 +103,18 @@ jobs:
64103
65104
- name: Build for production
66105
env:
67-
# Build configuration
106+
# Build
68107
BUILD_CHECK: 'false' # Skip type checks
69-
# Deployment configuration
70-
GITHUB_REPOSITORY_URL: https://github.com/${{ github.repository }}
71-
GITHUB_SHA: ${{ github.sha }}
72-
VERSION_TAG: ${{ vars.VERSION_TAG }}
73-
# Astro configuration
74-
ASTRO_SITE_URL: ${{ vars.ASTRO_SITE_URL }}
75-
ASTRO_BASE_PATH: ${{ vars.ASTRO_BASE_PATH }}
76-
ASTRO_ASSETS_PREFIX: ${{ vars.ASTRO_ASSETS_PREFIX }}
77-
# Application configuration
78-
# Add env vars for your application here.
108+
# Deployment
109+
GITHUB_REPOSITORY_URL: ${{ env.GITHUB_REPOSITORY_URL }}
110+
GITHUB_SHA: ${{ env.GITHUB_SHA }}
111+
VERSION_TAG: ${{ env.VERSION_TAG }}
112+
# Astro
113+
ASTRO_SITE_URL: ${{ env.ASTRO_SITE_URL }}
114+
ASTRO_BASE_PATH: ${{ env.ASTRO_BASE_PATH }}
115+
ASTRO_ASSETS_PREFIX: ${{ env.ASTRO_ASSETS_PREFIX }}
116+
# Application
117+
# (Add env vars for your application here.)
79118
run: |
80119
# docker compose build
81120
export DOCKER_UID="$(id -u)"
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Load app config in GitHub Actions environment
2+
3+
load_value() {
4+
# Inputs:
5+
local var_name="$1"
6+
local fallback_github_vars="$2"
7+
local default_value="$3"
8+
9+
# Outputs:
10+
# Write output to `var_value` and `var_value_source`
11+
12+
local var_value_tmp=''
13+
14+
# Load the variable value from CONFIG_PROD
15+
var_value_tmp=$(echo "${CONFIG_PROD}" | jq -rcM --arg var_name "${var_name}" '.[$var_name]')
16+
if [ -n "${var_value_tmp}" ] && [ "${var_value_tmp}" != "null" ]; then
17+
var_value="${var_value_tmp}"
18+
var_value_source='CONFIG_PROD'
19+
return 0
20+
fi
21+
22+
# Load the variable value from GITHUB_VARS
23+
if [ "${fallback_github_vars}" == 'true' ]; then
24+
var_value_tmp=$(echo "${GITHUB_VARS}" | jq -rcM --arg var_name "${var_name}" '.[$var_name]')
25+
if [ -n "${var_value_tmp}" ] && [ "${var_value_tmp}" != "null" ]; then
26+
var_value="${var_value_tmp}"
27+
var_value_source='GITHUB_VARS'
28+
return 0
29+
fi
30+
fi
31+
32+
# Fallback to default value
33+
if [ -n "${default_value}" ]; then
34+
var_value="${default_value}"
35+
var_value_source='DEFAULT'
36+
return 0
37+
fi
38+
39+
# Variable not found
40+
var_value=''
41+
var_value_source='NOT_SET'
42+
return 0
43+
}
44+
45+
load_var() {
46+
# Inputs:
47+
local var_name="$1"
48+
local fallback_github_vars="$2"
49+
local default_value="$3"
50+
51+
if [ -z "${var_name}" ]; then
52+
echo "ERROR: Variable name is empty" >&2
53+
return 1
54+
fi
55+
56+
local var_value=''
57+
local var_value_source=''
58+
load_value "${var_name}" "${fallback_github_vars}" "${default_value}"
59+
60+
if [ ${var_value_source} == 'NOT_SET' ]; then
61+
echo "DEBUG: Variable ${var_name} is not set" >&2
62+
elif [ ${var_value_source} == 'DEFAULT' ]; then
63+
echo "DEBUG: Variable ${var_name} loaded from default value" >&2
64+
else
65+
echo "DEBUG: Variable ${var_name} loaded from '${var_value_source}'" >&2
66+
fi
67+
68+
if [ -z "${var_value}" ]; then
69+
echo "DEBUG: Variable ${var_name} is empty" >&2
70+
fi
71+
72+
# Export the variable to GitHub Actions environment
73+
if [ -n "${var_value}" ]; then
74+
echo "${var_value}" | sed 's/^ */::add-mask::/'
75+
fi
76+
echo "Set ${var_name} (secret)"
77+
echo "${var_name}<<GITHUB_ENV_EOF" >> "$GITHUB_ENV"
78+
echo "${var_value}" >> "$GITHUB_ENV"
79+
echo 'GITHUB_ENV_EOF' >> "$GITHUB_ENV"
80+
}

.gitignore

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,32 +24,31 @@ Thumbs.db
2424
.idea/
2525

2626
# Other
27-
*.suo
28-
*.ntvs*
2927
*.njsproj
28+
*.ntvs*
3029
*.sln
30+
*.suo
3131
*.sw?
3232

3333
# -- Application rules:
3434

3535
# Node.js
36-
node_modules/
3736
.pnpm-store/
3837
dist/
38+
node_modules/
3939

4040
# Astro
4141
.astro/
4242
.vite/
4343

4444
# Playwright
45-
test-results/
46-
playwright-report/
4745
blob-report/
46+
playwright-report/
4847
playwright/.cache/
48+
test-results/
4949

50-
# Application environment files
51-
*/**/.env*
52-
53-
# -- Specific to gitignore:
50+
# -- Service rules:
5451

55-
# N/A
52+
# All services
53+
/*/data/
54+
/*/**/.env*

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Use this command to run the site locally for development:
1313

1414
```sh
1515
docker compose watch
16-
# or: docker compose up
16+
# or: docker compose up -d
1717
```
1818

1919
Using `watch`, you'll benefit from file changes watching for sync & rebuild.

app/.astro-template

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
df3f56679c68e14b702a775c4d4008501370168c
1+
c39c37ce99d0ed73146577e36e202b23d29e8d41

0 commit comments

Comments
 (0)