1515env :
1616 DOCKER_BUILDKIT : 1
1717 SERVICESTACK_LICENSE : ${{ secrets.SERVICESTACK_LICENSE }}
18+ APPSETTINGS_JSON : ${{ secrets.APPSETTINGS_JSON }}
1819 KAMAL_DEPLOY_IP : ${{ secrets.KAMAL_DEPLOY_IP }}
1920 KAMAL_DEPLOY_HOST : ${{ secrets.KAMAL_DEPLOY_HOST }}
2021 KAMAL_REGISTRY_USERNAME : ${{ github.actor }}
@@ -28,12 +29,18 @@ jobs:
2829 - name : Checkout code
2930 uses : actions/checkout@v5
3031
32+ - name : Encode APPSETTINGS_JSON for runtime
33+ if : env.APPSETTINGS_JSON != null
34+ run : |
35+ # Base64 encode to avoid shell/YAML quoting issues; keep as a single env var.
36+ b64=$(printf '%s' "$APPSETTINGS_JSON" | base64 -w0)
37+ echo "APPSETTINGS_JSON_BASE64=$b64" >> $GITHUB_ENV
38+
3139 - name : Set up environment variables
3240 run : |
33- echo "image_repository_name=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
34- echo "repository_name=$(echo ${{ github.repository }} | cut -d '/' -f 2)" >> $GITHUB_ENV
35- echo "repository_name_lower=$(echo ${{ github.repository }} | cut -d '/' -f 2 | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
36- echo "org_name=$(echo ${{ github.repository }} | cut -d '/' -f 1)" >> $GITHUB_ENV
41+ echo "IMAGE=ghcr.io/$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
42+ repo_name="$(echo ${{ github.repository }} | cut -d '/' -f 2)"
43+ echo "SERVICE=$(echo $repo_name | tr '[:upper:]' '[:lower:]' | tr '.' '-')" >> $GITHUB_ENV
3744 if find . -maxdepth 2 -type f -name "Configure.Db.Migrations.cs" | grep -q .; then
3845 echo "HAS_MIGRATIONS=true" >> $GITHUB_ENV
3946 else
@@ -73,22 +80,22 @@ jobs:
7380 - name : Ensure directories exist with correct permissions
7481 run : |
7582 echo "Creating directories with correct permissions"
76- kamal server exec "mkdir -p /opt/docker/${{ env.repository_name }}/App_Data /opt/docker/${{ env.repository_name }}/initdb.d"
83+ kamal server exec "mkdir -p /opt/docker/${{ env.SERVICE }}/App_Data /opt/docker/${{ env.SERVICE }}/initdb.d"
7784
7885 echo "Setting app file permissions"
79- kamal server exec "chown -R 1654:1654 /opt/docker/${{ env.repository_name }}/App_Data /opt/docker/${{ env.repository_name }}/initdb.d"
86+ kamal server exec "chown -R 1654:1654 /opt/docker/${{ env.SERVICE }}/App_Data /opt/docker/${{ env.SERVICE }}/initdb.d"
8087
8188 - name : Check if first run and execute kamal app boot if necessary
8289 run : |
83- FIRST_RUN_FILE="~/first-run/${{ env.repository_name }}"
90+ FIRST_RUN_FILE="~/first-run/${{ env.SERVICE }}"
8491 if ! kamal server exec -q "test -f $FIRST_RUN_FILE"; then
8592 kamal server exec -q "mkdir -p ~/first-run && touch $FIRST_RUN_FILE" || true
8693
8794 if [ -n "${{env.INIT_DB_SQL}}" ]; then
8895 echo "Initializing DB with INIT_DB_SQL secret..."
8996 # Save the SQL content to a temporary file
9097 echo "${{ env.INIT_DB_SQL }}" > init-db.sql
91- cat init-db.sql | kamal server exec -i "cat > /opt/docker/${{ env.repository_name }}/initdb.d/${{ env.repository_name }}.sql" && rm init-db.sql || true
98+ cat init-db.sql | kamal server exec -i "cat > /opt/docker/${{ env.SERVICE }}/initdb.d/${{ env.SERVICE }}.sql" && rm init-db.sql || true
9299 fi
93100 # Start all kamal accessories
94101 kamal accessory boot all || true
@@ -101,13 +108,13 @@ jobs:
101108
102109 - name : Verify file permissions before deploy
103110 run : |
104- kamal server exec --no-interactive "chown -R 1654:1654 /opt/docker/${{ env.repository_name }}/App_Data /opt/docker/${{ env.repository_name }}/initdb.d"
111+ kamal server exec --no-interactive "chown -R 1654:1654 /opt/docker/${{ env.SERVICE }}/App_Data /opt/docker/${{ env.SERVICE }}/initdb.d"
105112
106113 - name : Deploy with Kamal
107114 run : |
108115 kamal lock release -v
109116 kamal server exec --no-interactive 'echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin'
110- kamal server exec --no-interactive 'docker pull ghcr.io/ ${{ env.image_repository_name }}:latest'
117+ kamal server exec --no-interactive 'docker pull ${{ env.IMAGE }}:latest'
111118 kamal deploy -P --version latest
112119
113120 - name : Migration
0 commit comments