diff --git a/.firebaserc b/.firebaserc new file mode 100644 index 00000000..e983fad5 --- /dev/null +++ b/.firebaserc @@ -0,0 +1,7 @@ +{ + "projects": { + "default": "zksync-docs-staging-5eb09", + "prod": "zksync-docs" + }, + "etags": {} +} diff --git a/.github/workflows/checks.yaml b/.github/workflows/checks.yaml index b8862165..115b9e1f 100644 --- a/.github/workflows/checks.yaml +++ b/.github/workflows/checks.yaml @@ -1,22 +1,21 @@ -name: clean ๐Ÿงน +name: check ๐Ÿ•ต๏ธ on: pull_request: branches: [main, staging] - workflow_dispatch: jobs: format: - name: format + name: code_format runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v1 - - name: Runs prettier formatter - run: | - bun install - bun run lint:prettier + - name: Install Dependencies + run: bun install + - name: Runs Prettier Formatter + run: bun run lint:prettier spelling: name: spelling @@ -24,18 +23,29 @@ jobs: steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v1 - - name: Runs cspell spell checker - run: | - bun install - bun run lint:spelling + - name: Install Dependencies + run: bun install + - name: Runs cSpell Spell Checker + run: bun run lint:spelling + + markdown-lint: + name: markdown_lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v1 + - name: Install Dependencies + run: bun install + - name: Runs Markdown Linter + run: bun run lint:markdown - lint: - name: lint markdown + eslint: + name: code_lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v1 - - name: Runs mdl markdown linter - run: | - bun install - bun run lint:markdown \ No newline at end of file + - name: Install Dependencies + run: bun install + - name: Runs ESLint + run: bun run lint:eslint diff --git a/.github/workflows/deploy-preview.yml b/.github/workflows/deploy-preview.yml new file mode 100644 index 00000000..dc5f22d1 --- /dev/null +++ b/.github/workflows/deploy-preview.yml @@ -0,0 +1,30 @@ +name: "preview builder ๐Ÿ‘€" +on: + pull_request: + workflow_dispatch: + +jobs: + build_and_preview: + env: + NUXT_UI_PRO_LICENSE: ${{ secrets.NUXT_UI_PRO_LICENSE }} + NUXT_PUBLIC_SITE_URL: ${{ secrets.NUXT_PUBLIC_SITE_URL }} + if: ${{ github.event_name == 'workflow_dispatch' || github.event.pull_request.head.repo.full_name == github.repository }} + runs-on: ubuntu-latest + outputs: + output_urls: "${{ steps.preview_deploy.outputs.urls }}" + steps: + - uses: actions/checkout@v4 # v4 + + - uses: oven-sh/setup-bun@v1 + + - name: "Install dependencies" + run: bun install + - name: "Deploy target: staging" + run: bun run build && bun run generate + + - name: "Deploy preview" + uses: matter-labs/action-hosting-deploy@main + with: + repoToken: '${{ secrets.GITHUB_TOKEN }}' + firebaseServiceAccount: "${{ secrets.FIREBASE_SERVICE_ACCOUNT_ZKSYNC_DOCS_STAGING_5EB09 }}" + projectId: zksync-docs-staging-5eb09 \ No newline at end of file diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml new file mode 100644 index 00000000..bb76800e --- /dev/null +++ b/.github/workflows/deploy-prod.yml @@ -0,0 +1,56 @@ +name: "deploy ๐Ÿš€" +on: + push: + branches: [main] + +jobs: + build_and_deploy: + env: + NUXT_UI_PRO_LICENSE: ${{ secrets.NUXT_UI_PRO_LICENSE }} + if: ${{ github.event.repository.full_name == github.repository }} + runs-on: ubuntu-latest + environment: prod + steps: + - uses: actions/checkout@v4 # v4 + with: + fetch-depth: 0 + # Whether to configure the token or SSH key with the local git config + # Default: true + persist-credentials: false # <--- checking this in commit context + + - uses: oven-sh/setup-bun@v1 + + - name: "Install dependencies" + run: bun install + - name: "Deploy target: staging" + run: bun run build && bun run generate + # TODO: ask about below + # env: + # RUDDERSTACK_WRITE_KEY: "${{ secrets.RUDDERSTACK_WRITE_KEY }}" + # RUDDERSTACK_DATA_PLANE_URL: "${{ secrets.RUDDERSTACK_DATA_PLANE_URL }}" + + - uses: matter-labs/action-hosting-deploy@main + with: + repoToken: "${{ secrets.GITHUB_TOKEN }}" + firebaseServiceAccount: "${{ secrets.FIREBASE_SERVICE_ACCOUNT_ZKSYNC_DOCS }}" + target: prod + projectId: zksync-docs + channelId: live + + # TODO: re-enable once we are closer to production deployment + # - name: Purge cf cache + # uses: nathanvaughn/actions-cloudflare-purge@db8c58f61ba4c3ec77229c8fa14ddebb3b59932f # v3.1.0 + # with: + # cf_zone: ${{ secrets.CLOUDFLARE_ZONE }} + # cf_auth: ${{ secrets.CLOUDFLARE_AUTH_KEY }} + # hosts: | + # docs.zksync.io + # era.zksync.io + # v2-docs.zksync.io + + # TODO: Implement reindex task tracking instead of blindly exiting on task submit + # - name: Trigger Algolia reindex + # run: | + # curl -X POST "${{ secrets.ALGOLIA_CRAWLER_BASE_URL }}/crawlers/${{ secrets.ALGOLIA_CRAWLER_ID }}/reindex" \ + # -H "Content-Type: application/json" \ + # --user "${{ secrets.ALGOLIA_CRAWLER_USER_ID }}:${{ secrets.ALGOLIA_CRAWLER_API_KEY }}" \ No newline at end of file diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml new file mode 100644 index 00000000..e0086118 --- /dev/null +++ b/.github/workflows/deploy-staging.yml @@ -0,0 +1,30 @@ +name: "deploy staging ๐Ÿ—๏ธ" +on: + push: + branches: [staging] + +jobs: + build_and_deploy: + env: + NUXT_UI_PRO_LICENSE: ${{ secrets.NUXT_UI_PRO_LICENSE }} + NUXT_PUBLIC_SITE_URL: ${{ secrets.NUXT_PUBLIC_SITE_URL }} + if: ${{ github.event.repository.full_name == github.repository }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 # v4 + with: + ref: "${{ github.event.inputs.ref }}" + + - uses: oven-sh/setup-bun@v1 + + - name: "Install dependencies" + run: bun install + - name: "Deploy target: staging" + run: bun run build && bun run generate + + - uses: matter-labs/action-hosting-deploy@main + with: + repoToken: "${{ secrets.GITHUB_TOKEN }}" + firebaseServiceAccount: "${{ secrets.FIREBASE_SERVICE_ACCOUNT_ZKSYNC_DOCS_STAGING_5EB09 }}" + projectId: zksync-docs-staging-5eb09 + channelId: live \ No newline at end of file diff --git a/.github/workflows/secrets_scanner.yaml b/.github/workflows/secrets_scanner.yaml index 4be8437d..8904a999 100644 --- a/.github/workflows/secrets_scanner.yaml +++ b/.github/workflows/secrets_scanner.yaml @@ -1,9 +1,9 @@ -name: Leaked Secrets Scan +name: scan ๐Ÿ” on: pull_request: merge_group: jobs: - TruffleHog: + secrets: runs-on: ubuntu-latest steps: - name: Checkout code diff --git a/.gitignore b/.gitignore index feb2e8b6..763090fe 100644 --- a/.gitignore +++ b/.gitignore @@ -99,3 +99,4 @@ yarn.lock .nitro .cache dist +.firebase \ No newline at end of file diff --git a/.markdownlint.json b/.markdownlint.json index 8a59db9f..123df027 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -13,5 +13,9 @@ "line_length": 120, "tables": false }, - "MD033": false + "MD033": false, + "MD003": false, + "MD034": false, + "MD024": false, + "MD022": false } diff --git a/app.vue b/app.vue index 6a1a44f8..b31c0f44 100644 --- a/app.vue +++ b/app.vue @@ -1,5 +1,7 @@ - + diff --git a/pages/index.vue b/pages/index.vue index 414cbb11..a74d277f 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -19,7 +19,6 @@ const particlesLoaded = async (container: unknown) => {