diff --git a/.github/workflows/deploy_to_netlify.yaml b/.github/workflows/deploy_to_netlify.yaml index 1f3641d4..45837972 100644 --- a/.github/workflows/deploy_to_netlify.yaml +++ b/.github/workflows/deploy_to_netlify.yaml @@ -13,6 +13,7 @@ on: env: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} + NETLIFY_SITE_NAME: ${{ vars.NETLIFY_SITE_NAME }} DEPLOY_DIR: dist jobs: @@ -83,45 +84,7 @@ jobs: url: ${{ steps.post_deploy.outputs.netlify_deploy_url }} runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Setup Node - uses: actions/setup-node@v3 - with: - node-version: 18 - - - name: Setup PNPM - uses: pnpm/action-setup@v2 - with: - version: 8 - run_install: false - - - name: Get PNPM store directory - id: pnpm-cache - run: echo "pnpm_store_path=$(pnpm store path)" >> "$GITHUB_OUTPUT" - - - name: Setup pnpm cache - uses: actions/cache@v3 - with: - path: ${{ steps.pnpm-cache.outputs.pnpm_store_path }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- - - - name: Install dependencies - run: pnpm install - - - name: Install Netlify CLI - run: pnpm add --save-dev netlify-cli - - - name: Set as production environment - if: needs.set_deploy_environment.outputs.github_environment == 'production' - run: echo "PROD=true" >> "$GITHUB_ENV" - - - name: Deploy ${{ needs.set_deploy_environment.outputs.github_environment }} - id: deploy - if: success() + - name: Set app environment variables env: NETLIFY_DEPLOY_PREFIX: ${{ needs.set_deploy_environment.outputs.netlify_deploy_prefix }} NETLIFY_DEPLOY_ALIAS: ${{ needs.set_deploy_environment.outputs.netlify_deploy_alias }} @@ -129,91 +92,35 @@ jobs: SITE_SWETRIX_ID: ${{ vars.SITE_SWETRIX_ID }} SITE_COUNTER_ANALYTICS_ID: ${{ vars.SITE_COUNTER_ANALYTICS_ID }} SITE_DISQUS_ID: ${{ vars.SITE_DISQUS_ID }} - shell: bash run: | - set -e - ([[ ${PROD:-false} == "true" ]] && \ - OUTPUT=$(GA_ID=$SITE_GA_ID \ - SWETRIX_ID="${SITE_SWETRIX_ID}" \ - COUNTER_ANALYTICS_ID="${SITE_COUNTER_ANALYTICS_ID}" \ - DISQUS_ID="${SITE_DISQUS_ID}" \ - pnpm netlify deploy \ - --auth ${{ env.NETLIFY_AUTH_TOKEN }} \ - --site ${{ env.NETLIFY_SITE_ID }} \ - --json \ - --build \ - --context production \ - --message "$(git log -1 --pretty=%s)" \ - --prod \ - | tr '\n' ' ')) || \ - OUTPUT=$( - SWETRIX_ID="${SITE_SWETRIX_ID}" \ - COUNTER_ANALYTICS_ID="${SITE_COUNTER_ANALYTICS_ID}" \ - DISQUS_ID="${SITE_DISQUS_ID}" \ - pnpm netlify deploy \ - --auth ${{ env.NETLIFY_AUTH_TOKEN }} \ - --site ${{ env.NETLIFY_SITE_ID }} \ - --json \ - --build \ - --context deploy-preview \ - --alias "${NETLIFY_DEPLOY_ALIAS}" \ - --message "$(git log -1 --pretty=%s)" \ - | tr '\n' ' ') - set +e - - NETLIFY_OUTPUT="$OUTPUT" + { + echo "ASTRO_BASE_URL=https://${NETLIFY_DEPLOY_PREFIX}${NETLIFY_SITE_NAME}.netlify.app" + echo "NETLIFY_DEPLOY_ALIAS=${NETLIFY_DEPLOY_ALIAS}" + echo "GA_ID=${SITE_GA_ID}" + echo "SWETRIX_ID=${SITE_SWETRIX_ID}" + echo "COUNTER_ANALYTICS_ID=${SITE_COUNTER_ANALYTICS_ID}" + echo "DISQUS_ID=${SITE_DISQUS_ID}" + } >> "$GITHUB_ENV" - echo "netlify_output=$NETLIFY_OUTPUT" >> "$GITHUB_OUTPUT" - echo "success=true" >> "$GITHUB_OUTPUT" + - name: Build + uses: ghacts/static-site@main + with: + node-version: 18 + skip-test: true + lint-script: "lint:js" - - name: Post deploy ${{ needs.set_deploy_environment.outputs.github_environment }} - id: post_deploy - if: success() + - name: Deploy + id: deploy + uses: ghacts/manual-deploy-to-netlify@main env: - NETLIFY_DRAFT_URL: ${{ fromJson(steps.deploy.outputs.netlify_output).deploy_url }} - NETLIFY_PROD_URL: ${{ fromJson(steps.deploy.outputs.netlify_output).url }} - run: | - [[ ${PROD:-false} == "true" ]] && \ - echo "netlify_deploy_url=$NETLIFY_PROD_URL" >> "$GITHUB_OUTPUT" || \ - echo "netlify_deploy_url=$NETLIFY_DRAFT_URL" >> "$GITHUB_OUTPUT" + PROD: ${{ needs.set_deploy_environment.outputs.github_environment == 'production' }} + with: + auth-token: ${{ env.NETLIFY_AUTH_TOKEN }} + site-id: ${{ env.NETLIFY_SITE_ID }} + dir: ${{ env.DEPLOY_DIR }} + alias: ${{ env.NETLIFY_DEPLOY_ALIAS }} + prod: ${{ env.PROD }} - - name: Debug deploy ${{ needs.set_deploy_environment.outputs.github_environment }} - id: debug-deploy - if: always() && (steps.deploy.outcome == 'failure' || steps.post_deploy.outcome == 'failure' ) - env: - NETLIFY_DEPLOY_PREFIX: ${{ needs.set_deploy_environment.outputs.netlify_deploy_prefix }} - NETLIFY_DEPLOY_ALIAS: ${{ needs.set_deploy_environment.outputs.netlify_deploy_alias }} - SITE_GA_ID: ${{ vars.SITE_GA_ID }} - SITE_SWETRIX_ID: ${{ vars.SITE_SWETRIX_ID }} - SITE_COUNTER_ANALYTICS_ID: ${{ vars.SITE_COUNTER_ANALYTICS_ID }} - SITE_DISQUS_ID: ${{ vars.SITE_DISQUS_ID }} - shell: bash - run: | - echo "node version $(node -v)" - echo "pnpm version $(pnpm -v)" - ([[ ${PROD:-false} == "true" ]] && \ - GA_ID=$SITE_GA_ID \ - SWETRIX_ID="${SITE_SWETRIX_ID}" \ - COUNTER_ANALYTICS_ID="${SITE_COUNTER_ANALYTICS_ID}" \ - DISQUS_ID="${SITE_DISQUS_ID}" \ - pnpm netlify deploy \ - --auth ${{ env.NETLIFY_AUTH_TOKEN }} \ - --site ${{ env.NETLIFY_SITE_ID }} \ - --build \ - --context production \ - --message "$(git log -1 --pretty=%s)" \ - --prod) || \ - GA_ID=$SITE_GA_ID \ - SWETRIX_ID="${SITE_SWETRIX_ID}" \ - COUNTER_ANALYTICS_ID="${SITE_COUNTER_ANALYTICS_ID}" \ - DISQUS_ID="${SITE_DISQUS_ID}" \ - pnpm netlify deploy \ - --auth ${{ env.NETLIFY_AUTH_TOKEN }} \ - --site ${{ env.NETLIFY_SITE_ID }} \ - --build \ - --context deploy-preview \ - --alias "${NETLIFY_DEPLOY_ALIAS}" \ - --message "$(git log -1 --pretty=%s)" outputs: success: ${{ steps.deploy.outputs.success }} diff --git a/package.json b/package.json index a0110d56..53535940 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,9 @@ "preview": "astro preview", "astro": "astro", "prepare": "astro telemetry disable && husky install", - "type-check": "astro check && tsc --noEmit", - "lint": "eslint --ext .cjs,.mjs,.ts,.astro --ignore-path .gitignore ." + "lint:js": "eslint --ext .cjs,.mjs,.ts,.astro --ignore-path .gitignore .", + "lint:ts": "astro check && tsc --noEmit", + "lint": "pnpm run lint:js && pnpm run lint:ts" }, "dependencies": { "@astrojs/partytown": "^1.2.3",