|
9 | 9 | types: [completed] |
10 | 10 | branches: |
11 | 11 | - main |
| 12 | + - pre-production |
12 | 13 | - staging |
13 | 14 | - k3s |
14 | 15 | # Config-only changes that do NOT rebump image tags: deploy directly. |
|
17 | 18 | push: |
18 | 19 | branches: |
19 | 20 | - main |
| 21 | + - pre-production |
20 | 22 | - staging |
21 | 23 | - k3s |
22 | 24 | paths-ignore: |
@@ -51,15 +53,16 @@ jobs: |
51 | 53 | SHA="${{ github.sha }}" ;; |
52 | 54 | esac |
53 | 55 | case "$BRANCH" in |
54 | | - main) ENV="production" ;; |
55 | | - staging) ENV="staging" ;; |
56 | | - k3s) ENV="staging" ;; |
57 | | - *) ENV="staging" ;; |
| 56 | + main) ENV="production" ;; |
| 57 | + pre-production) ENV="production" ;; |
| 58 | + staging) ENV="staging" ;; |
| 59 | + k3s) ENV="staging" ;; |
| 60 | + *) ENV="staging" ;; |
58 | 61 | esac |
59 | 62 | echo "branch=$BRANCH" >> $GITHUB_OUTPUT |
60 | 63 | echo "sha=$SHA" >> $GITHUB_OUTPUT |
61 | 64 | echo "env=$ENV" >> $GITHUB_OUTPUT |
62 | | - echo "release=ohm-hetzner-$ENV" >> $GITHUB_OUTPUT |
| 65 | + echo "release=htz-$ENV" >> $GITHUB_OUTPUT |
63 | 66 | if [ "$ENV" = "production" ]; then |
64 | 67 | echo "cf_id=${{ secrets.PRODUCTION_CF_ACCESS_CLIENT_ID }}" >> $GITHUB_OUTPUT |
65 | 68 | echo "cf_secret=${{ secrets.PRODUCTION_CF_ACCESS_CLIENT_SECRET }}" >> $GITHUB_OUTPUT |
@@ -123,11 +126,18 @@ jobs: |
123 | 126 | cloudflared access tcp \ |
124 | 127 | --hostname ${{ steps.src.outputs.hostname }} \ |
125 | 128 | --url 127.0.0.1:16443 & |
| 129 | + CF_PID=$! |
| 130 | + # Probe the tunnel end-to-end: the local port binds even when the |
| 131 | + # websocket to origin fails, so check a real request, not just the port. |
126 | 132 | for i in {1..30}; do |
127 | | - nc -z 127.0.0.1 16443 2>/dev/null && exit 0 |
| 133 | + if curl -sk -o /dev/null --max-time 5 https://127.0.0.1:16443/livez; then |
| 134 | + echo "tunnel up (k3s reachable)" |
| 135 | + exit 0 |
| 136 | + fi |
128 | 137 | sleep 2 |
129 | 138 | done |
130 | | - echo "Tunnel failed to open" >&2 |
| 139 | + echo "Tunnel failed to reach k3s" >&2 |
| 140 | + kill $CF_PID 2>/dev/null || true |
131 | 141 | exit 1 |
132 | 142 |
|
133 | 143 | - name: Verify access |
@@ -160,6 +170,15 @@ jobs: |
160 | 170 | _format-key: '{{key}}' |
161 | 171 | _output-file: 'values.k3s.production.yaml' |
162 | 172 | PRODUCTION_NOMINATIM_PG_PASSWORD: ${{ secrets.PRODUCTION_NOMINATIM_PG_PASSWORD }} |
| 173 | + PRODUCTION_OSMCHA_PG_PASSWORD: ${{ secrets.PRODUCTION_OSMCHA_PG_PASSWORD }} |
| 174 | + PRODUCTION_OSMCHA_DJANGO_SECRET_KEY: ${{ secrets.PRODUCTION_OSMCHA_DJANGO_SECRET_KEY }} |
| 175 | + PRODUCTION_OSMCHA_OAUTH2_OSM_KEY: ${{ secrets.PRODUCTION_OSMCHA_OAUTH2_OSM_KEY }} |
| 176 | + PRODUCTION_OSMCHA_OAUTH2_OSM_SECRET: ${{ secrets.PRODUCTION_OSMCHA_OAUTH2_OSM_SECRET }} |
| 177 | + PRODUCTION_SQS_QUEUE_URL: ${{ secrets.PRODUCTION_SQS_QUEUE_URL }} |
| 178 | + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} |
| 179 | + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} |
| 180 | + SQS_AWS_ACCESS_KEY_ID: ${{ secrets.SQS_AWS_ACCESS_KEY_ID }} |
| 181 | + SQS_AWS_SECRET_ACCESS_KEY: ${{ secrets.SQS_AWS_SECRET_ACCESS_KEY }} |
163 | 182 |
|
164 | 183 | - name: Helm dep up (pull osm-seed subchart) |
165 | 184 | run: cd ohm && helm dep up |
|
0 commit comments