|
13 | 13 | env: |
14 | 14 | NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} |
15 | 15 | NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} |
| 16 | + NETLIFY_SITE_NAME: ${{ vars.NETLIFY_SITE_NAME }} |
16 | 17 | DEPLOY_DIR: dist |
17 | 18 |
|
18 | 19 | jobs: |
@@ -80,140 +81,46 @@ jobs: |
80 | 81 | needs: set_deploy_environment |
81 | 82 | environment: |
82 | 83 | name: ${{ needs.set_deploy_environment.outputs.github_environment }} |
83 | | - url: ${{ steps.post_deploy.outputs.netlify_deploy_url }} |
| 84 | + url: ${{ steps.deploy.outputs.netlify-deploy-url }} |
84 | 85 | runs-on: ubuntu-latest |
85 | 86 | steps: |
86 | | - - name: Checkout repository |
87 | | - uses: actions/checkout@v3 |
88 | | - |
89 | | - - name: Setup Node |
90 | | - uses: actions/setup-node@v3 |
91 | | - with: |
92 | | - node-version: 18 |
93 | | - |
94 | | - - name: Setup PNPM |
95 | | - uses: pnpm/action-setup@v2 |
96 | | - with: |
97 | | - version: 8 |
98 | | - run_install: false |
99 | | - |
100 | | - - name: Get PNPM store directory |
101 | | - id: pnpm-cache |
102 | | - run: echo "pnpm_store_path=$(pnpm store path)" >> "$GITHUB_OUTPUT" |
103 | | - |
104 | | - - name: Setup pnpm cache |
105 | | - uses: actions/cache@v3 |
106 | | - with: |
107 | | - path: ${{ steps.pnpm-cache.outputs.pnpm_store_path }} |
108 | | - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} |
109 | | - restore-keys: | |
110 | | - ${{ runner.os }}-pnpm-store- |
111 | | -
|
112 | | - - name: Install dependencies |
113 | | - run: pnpm install |
114 | | - |
115 | | - - name: Install Netlify CLI |
116 | | - run: pnpm add --save-dev netlify-cli |
117 | | - |
118 | | - - name: Set as production environment |
119 | | - if: needs.set_deploy_environment.outputs.github_environment == 'production' |
120 | | - run: echo "PROD=true" >> "$GITHUB_ENV" |
121 | | - |
122 | | - - name: Deploy ${{ needs.set_deploy_environment.outputs.github_environment }} |
123 | | - id: deploy |
124 | | - if: success() |
| 87 | + - name: Set app environment variables |
125 | 88 | env: |
126 | 89 | NETLIFY_DEPLOY_PREFIX: ${{ needs.set_deploy_environment.outputs.netlify_deploy_prefix }} |
127 | 90 | NETLIFY_DEPLOY_ALIAS: ${{ needs.set_deploy_environment.outputs.netlify_deploy_alias }} |
128 | 91 | SITE_GA_ID: ${{ vars.SITE_GA_ID }} |
129 | 92 | SITE_SWETRIX_ID: ${{ vars.SITE_SWETRIX_ID }} |
130 | 93 | SITE_COUNTER_ANALYTICS_ID: ${{ vars.SITE_COUNTER_ANALYTICS_ID }} |
131 | 94 | SITE_DISQUS_ID: ${{ vars.SITE_DISQUS_ID }} |
132 | | - shell: bash |
133 | 95 | run: | |
134 | | - set -e |
135 | | - ([[ ${PROD:-false} == "true" ]] && \ |
136 | | - OUTPUT=$(GA_ID=$SITE_GA_ID \ |
137 | | - SWETRIX_ID="${SITE_SWETRIX_ID}" \ |
138 | | - COUNTER_ANALYTICS_ID="${SITE_COUNTER_ANALYTICS_ID}" \ |
139 | | - DISQUS_ID="${SITE_DISQUS_ID}" \ |
140 | | - pnpm netlify deploy \ |
141 | | - --auth ${{ env.NETLIFY_AUTH_TOKEN }} \ |
142 | | - --site ${{ env.NETLIFY_SITE_ID }} \ |
143 | | - --json \ |
144 | | - --build \ |
145 | | - --context production \ |
146 | | - --message "$(git log -1 --pretty=%s)" \ |
147 | | - --prod \ |
148 | | - | tr '\n' ' ')) || \ |
149 | | - OUTPUT=$( |
150 | | - SWETRIX_ID="${SITE_SWETRIX_ID}" \ |
151 | | - COUNTER_ANALYTICS_ID="${SITE_COUNTER_ANALYTICS_ID}" \ |
152 | | - DISQUS_ID="${SITE_DISQUS_ID}" \ |
153 | | - pnpm netlify deploy \ |
154 | | - --auth ${{ env.NETLIFY_AUTH_TOKEN }} \ |
155 | | - --site ${{ env.NETLIFY_SITE_ID }} \ |
156 | | - --json \ |
157 | | - --build \ |
158 | | - --context deploy-preview \ |
159 | | - --alias "${NETLIFY_DEPLOY_ALIAS}" \ |
160 | | - --message "$(git log -1 --pretty=%s)" \ |
161 | | - | tr '\n' ' ') |
162 | | - set +e |
163 | | -
|
164 | | - NETLIFY_OUTPUT="$OUTPUT" |
| 96 | + { |
| 97 | + echo "ASTRO_BASE_URL=https://${NETLIFY_DEPLOY_PREFIX}${NETLIFY_SITE_NAME}.netlify.app" |
| 98 | + echo "NETLIFY_DEPLOY_ALIAS=${NETLIFY_DEPLOY_ALIAS}" |
| 99 | + echo "GA_ID=${SITE_GA_ID}" |
| 100 | + echo "SWETRIX_ID=${SITE_SWETRIX_ID}" |
| 101 | + echo "COUNTER_ANALYTICS_ID=${SITE_COUNTER_ANALYTICS_ID}" |
| 102 | + echo "DISQUS_ID=${SITE_DISQUS_ID}" |
| 103 | + } >> "$GITHUB_ENV" |
165 | 104 |
|
166 | | - echo "netlify_output=$NETLIFY_OUTPUT" >> "$GITHUB_OUTPUT" |
167 | | - echo "success=true" >> "$GITHUB_OUTPUT" |
| 105 | + - name: Build |
| 106 | + uses: ghacts/static-site@main |
| 107 | + with: |
| 108 | + node-version: 18 |
| 109 | + skip-test: true |
| 110 | + lint-script: "lint:js" |
168 | 111 |
|
169 | | - - name: Post deploy ${{ needs.set_deploy_environment.outputs.github_environment }} |
170 | | - id: post_deploy |
171 | | - if: success() |
| 112 | + - name: Deploy |
| 113 | + id: deploy |
| 114 | + uses: ghacts/manual-deploy-to-netlify@main |
172 | 115 | env: |
173 | | - NETLIFY_DRAFT_URL: ${{ fromJson(steps.deploy.outputs.netlify_output).deploy_url }} |
174 | | - NETLIFY_PROD_URL: ${{ fromJson(steps.deploy.outputs.netlify_output).url }} |
175 | | - run: | |
176 | | - [[ ${PROD:-false} == "true" ]] && \ |
177 | | - echo "netlify_deploy_url=$NETLIFY_PROD_URL" >> "$GITHUB_OUTPUT" || \ |
178 | | - echo "netlify_deploy_url=$NETLIFY_DRAFT_URL" >> "$GITHUB_OUTPUT" |
| 116 | + PROD: ${{ needs.set_deploy_environment.outputs.github_environment == 'production' }} |
| 117 | + with: |
| 118 | + auth-token: ${{ env.NETLIFY_AUTH_TOKEN }} |
| 119 | + site-id: ${{ env.NETLIFY_SITE_ID }} |
| 120 | + dir: ${{ env.DEPLOY_DIR }} |
| 121 | + alias: ${{ env.NETLIFY_DEPLOY_ALIAS }} |
| 122 | + prod: ${{ env.PROD }} |
179 | 123 |
|
180 | | - - name: Debug deploy ${{ needs.set_deploy_environment.outputs.github_environment }} |
181 | | - id: debug-deploy |
182 | | - if: always() && (steps.deploy.outcome == 'failure' || steps.post_deploy.outcome == 'failure' ) |
183 | | - env: |
184 | | - NETLIFY_DEPLOY_PREFIX: ${{ needs.set_deploy_environment.outputs.netlify_deploy_prefix }} |
185 | | - NETLIFY_DEPLOY_ALIAS: ${{ needs.set_deploy_environment.outputs.netlify_deploy_alias }} |
186 | | - SITE_GA_ID: ${{ vars.SITE_GA_ID }} |
187 | | - SITE_SWETRIX_ID: ${{ vars.SITE_SWETRIX_ID }} |
188 | | - SITE_COUNTER_ANALYTICS_ID: ${{ vars.SITE_COUNTER_ANALYTICS_ID }} |
189 | | - SITE_DISQUS_ID: ${{ vars.SITE_DISQUS_ID }} |
190 | | - shell: bash |
191 | | - run: | |
192 | | - echo "node version $(node -v)" |
193 | | - echo "pnpm version $(pnpm -v)" |
194 | | - ([[ ${PROD:-false} == "true" ]] && \ |
195 | | - GA_ID=$SITE_GA_ID \ |
196 | | - SWETRIX_ID="${SITE_SWETRIX_ID}" \ |
197 | | - COUNTER_ANALYTICS_ID="${SITE_COUNTER_ANALYTICS_ID}" \ |
198 | | - DISQUS_ID="${SITE_DISQUS_ID}" \ |
199 | | - pnpm netlify deploy \ |
200 | | - --auth ${{ env.NETLIFY_AUTH_TOKEN }} \ |
201 | | - --site ${{ env.NETLIFY_SITE_ID }} \ |
202 | | - --build \ |
203 | | - --context production \ |
204 | | - --message "$(git log -1 --pretty=%s)" \ |
205 | | - --prod) || \ |
206 | | - GA_ID=$SITE_GA_ID \ |
207 | | - SWETRIX_ID="${SITE_SWETRIX_ID}" \ |
208 | | - COUNTER_ANALYTICS_ID="${SITE_COUNTER_ANALYTICS_ID}" \ |
209 | | - DISQUS_ID="${SITE_DISQUS_ID}" \ |
210 | | - pnpm netlify deploy \ |
211 | | - --auth ${{ env.NETLIFY_AUTH_TOKEN }} \ |
212 | | - --site ${{ env.NETLIFY_SITE_ID }} \ |
213 | | - --build \ |
214 | | - --context deploy-preview \ |
215 | | - --alias "${NETLIFY_DEPLOY_ALIAS}" \ |
216 | | - --message "$(git log -1 --pretty=%s)" |
217 | 124 | outputs: |
218 | 125 | success: ${{ steps.deploy.outputs.success }} |
219 | 126 |
|
|
0 commit comments