Create your Link in Bio for Bluesky

fly.io用設定削除

+55 -181
-3
.dockerignore
··· 14 14 # playwright 15 15 playwright-report/ 16 16 e2e/state.json 17 - 18 - # fly.io 19 - fly.toml
-89
.github/workflows/test-and-deploy.yml
··· 1 - name: Test and Deploy 2 - 3 - on: 4 - push: 5 - branches: 6 - - main 7 - pull_request: 8 - 9 - jobs: 10 - unit-test: 11 - runs-on: ubuntu-latest 12 - steps: 13 - - uses: actions/checkout@v4 14 - - run: corepack enable pnpm 15 - - uses: actions/setup-node@v4 16 - with: 17 - node-version-file: .tool-versions 18 - cache: pnpm 19 - - run: pnpm i 20 - - run: pnpm typecheck 21 - - run: pnpm lint 22 - - run: pnpm test -- --coverage 23 - e2e-test: 24 - runs-on: ubuntu-latest 25 - steps: 26 - - uses: actions/checkout@v4 27 - - run: corepack enable pnpm 28 - - uses: actions/setup-node@v4 29 - with: 30 - node-version-file: .tool-versions 31 - cache: pnpm 32 - - run: | 33 - ATPROTO_COMMIT=$(cat ./scripts/postinstall.sh | grep ATPROTO_COMMIT= | awk -F'=' '{print $2}') 34 - echo "ATPROTO_COMMIT=$ATPROTO_COMMIT" >> $GITHUB_ENV 35 - - uses: actions/cache@v4 36 - with: 37 - path: atproto 38 - key: atproto-${{ env.ATPROTO_COMMIT }} 39 - - run: pnpm i 40 - - run: pnpm playwright install --with-deps 41 - - run: cp .env.example .env 42 - - run: pnpm setup-dev 43 - - run: pnpm build 44 - - run: pnpm e2e 45 - - name: Upload Report 46 - if: always() 47 - run: | 48 - E2E_S3_PATH="playwright-report/${{ github.ref == 'refs/heads/main' && 'main' || github.sha }}" 49 - aws s3 cp playwright-report "s3://$E2E_S3_PATH" --recursive 50 - echo "Report: https://${{ vars.S3_BASE_URL }}/$E2E_S3_PATH/index.html" 51 - env: 52 - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} 53 - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} 54 - AWS_ENDPOINT_URL: ${{ secrets.AWS_ENDPOINT_URL }} 55 - AWS_DEFAULT_REGION: auto 56 - upload-assets: 57 - runs-on: ubuntu-latest 58 - if: github.ref == 'refs/heads/main' 59 - steps: 60 - - uses: actions/checkout@v4 61 - - run: corepack enable pnpm 62 - - uses: actions/setup-node@v4 63 - with: 64 - node-version-file: .tool-versions 65 - cache: pnpm 66 - - run: pnpm i 67 - - run: pnpm build 68 - env: 69 - VITE_CONFIG_BASE: ${{ vars.S3_BASE_URL }}/build/${{ github.run_number }}/ 70 - - name: Upload Assets 71 - run: | 72 - aws s3 cp build/client/assets "s3://build/${{ github.run_number }}/assets" --recursive 73 - env: 74 - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} 75 - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} 76 - AWS_ENDPOINT_URL: ${{ secrets.AWS_ENDPOINT_URL }} 77 - AWS_DEFAULT_REGION: auto 78 - deploy: 79 - runs-on: ubuntu-latest 80 - needs: [unit-test, e2e-test, upload-assets] 81 - if: github.ref == 'refs/heads/main' 82 - concurrency: deploy-group 83 - timeout-minutes: 10 84 - steps: 85 - - uses: actions/checkout@v4 86 - - uses: superfly/flyctl-actions/setup-flyctl@master 87 - - run: flyctl deploy --remote-only --build-arg VITE_CONFIG_BASE=${{ vars.S3_BASE_URL }}/build/${{ github.run_number }}/ 88 - env: 89 - FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
+55
.github/workflows/test.yml
··· 1 + name: Test 2 + 3 + on: 4 + push: 5 + branches: 6 + - main 7 + pull_request: 8 + 9 + jobs: 10 + unit-test: 11 + runs-on: ubuntu-latest 12 + steps: 13 + - uses: actions/checkout@v4 14 + - run: corepack enable pnpm 15 + - uses: actions/setup-node@v4 16 + with: 17 + node-version-file: .tool-versions 18 + cache: pnpm 19 + - run: pnpm i 20 + - run: pnpm typecheck 21 + - run: pnpm lint 22 + - run: pnpm test -- --coverage 23 + e2e-test: 24 + runs-on: ubuntu-latest 25 + steps: 26 + - uses: actions/checkout@v4 27 + - run: corepack enable pnpm 28 + - uses: actions/setup-node@v4 29 + with: 30 + node-version-file: .tool-versions 31 + cache: pnpm 32 + - run: | 33 + ATPROTO_COMMIT=$(cat ./scripts/postinstall.sh | grep ATPROTO_COMMIT= | awk -F'=' '{print $2}') 34 + echo "ATPROTO_COMMIT=$ATPROTO_COMMIT" >> $GITHUB_ENV 35 + - uses: actions/cache@v4 36 + with: 37 + path: atproto 38 + key: atproto-${{ env.ATPROTO_COMMIT }} 39 + - run: pnpm i 40 + - run: pnpm playwright install --with-deps 41 + - run: cp .env.example .env 42 + - run: pnpm setup-dev 43 + - run: pnpm build 44 + - run: pnpm e2e 45 + - name: Upload Report 46 + if: always() 47 + run: | 48 + E2E_S3_PATH="playwright-report/${{ github.ref == 'refs/heads/main' && 'main' || github.sha }}" 49 + aws s3 cp playwright-report "s3://$E2E_S3_PATH" --recursive 50 + echo "Report: https://${{ vars.S3_BASE_URL }}/$E2E_S3_PATH/index.html" 51 + env: 52 + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} 53 + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} 54 + AWS_ENDPOINT_URL: ${{ secrets.AWS_ENDPOINT_URL }} 55 + AWS_DEFAULT_REGION: auto
-1
Dockerfile
··· 1 1 # syntax = docker/dockerfile:1 2 2 FROM node:20.13-slim AS base 3 - LABEL fly_launch_runtime="Remix/Prisma" 4 3 WORKDIR /app 5 4 RUN apt-get update -qq && \ 6 5 apt-get install --no-install-recommends -y openssl && \
-32
fly.toml
··· 1 - # fly.toml app configuration file generated for linkat on 2024-09-03T00:58:29+09:00 2 - # 3 - # See https://fly.io/docs/reference/configuration/ for information about how to use this file. 4 - # 5 - 6 - app = 'linkat' 7 - primary_region = 'nrt' 8 - 9 - [build] 10 - 11 - [deploy] 12 - release_command = 'npx prisma db push --skip-generate' 13 - strategy = 'bluegreen' 14 - 15 - [http_service] 16 - internal_port = 3000 17 - force_https = true 18 - auto_stop_machines = 'suspend' 19 - auto_start_machines = true 20 - min_machines_running = 1 21 - processes = ['app'] 22 - 23 - [[http_service.checks]] 24 - interval = '2s' 25 - timeout = '2s' 26 - grace_period = '5s' 27 - method = 'GET' 28 - path = '/health' 29 - 30 - [[vm]] 31 - size = 'shared-cpu-1x' 32 - memory = "512mb"
-1
package.json
··· 75 75 }, 76 76 "devDependencies": { 77 77 "@atproto/lex-cli": "0.5.2", 78 - "@flydotio/dockerfile": "0.5.9", 79 78 "@mkizka/eslint-config": "5.3.4", 80 79 "@mkizka/eslint-plugin-aaa": "1.0.2", 81 80 "@playwright/test": "1.49.0",
-55
pnpm-lock.yaml
··· 150 150 '@atproto/lex-cli': 151 151 specifier: 0.5.2 152 152 version: 0.5.2 153 - '@flydotio/dockerfile': 154 - specifier: 0.5.9 155 - version: 0.5.9 156 153 '@mkizka/eslint-config': 157 154 specifier: 5.3.4 158 155 version: 5.3.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.15.0(jiti@1.21.6))(tailwindcss@3.4.15)(typescript@5.7.2) ··· 1142 1139 resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==} 1143 1140 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1144 1141 1145 - '@flydotio/dockerfile@0.5.9': 1146 - resolution: {integrity: sha512-ZPvMw9ABrE6W4nc92NL5Jy4XdAehldsU4LZ6pJP+H0sAqHqw3Bk9qKbMcjKJN1aM5AuKqfWm/I4ABGnkDjcqEw==} 1147 - engines: {node: '>=16.0.0'} 1148 - hasBin: true 1149 - 1150 1142 '@hapi/hoek@9.3.0': 1151 1143 resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} 1152 1144 ··· 2052 2044 resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} 2053 2045 engines: {node: '>=12'} 2054 2046 2055 - async@3.2.6: 2056 - resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} 2057 - 2058 2047 asynckit@0.4.0: 2059 2048 resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 2060 2049 ··· 2508 2497 resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} 2509 2498 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 2510 2499 2511 - diff@5.2.0: 2512 - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} 2513 - engines: {node: '>=0.3.1'} 2514 - 2515 2500 dlv@1.1.3: 2516 2501 resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 2517 2502 ··· 2527 2512 2528 2513 ee-first@1.1.1: 2529 2514 resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 2530 - 2531 - ejs@3.1.10: 2532 - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} 2533 - engines: {node: '>=0.10.0'} 2534 - hasBin: true 2535 2515 2536 2516 electron-to-chromium@1.5.65: 2537 2517 resolution: {integrity: sha512-PWVzBjghx7/wop6n22vS2MLU8tKGd4Q91aCEGhG/TYmW6PP5OcSXcdnxTe1NNt0T66N8D6jxh4kC8UsdzOGaIw==} ··· 2817 2797 file-entry-cache@8.0.0: 2818 2798 resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 2819 2799 engines: {node: '>=16.0.0'} 2820 - 2821 - filelist@1.0.4: 2822 - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} 2823 2800 2824 2801 fill-range@7.1.1: 2825 2802 resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} ··· 3333 3310 3334 3311 jackspeak@3.4.3: 3335 3312 resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 3336 - 3337 - jake@10.9.2: 3338 - resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} 3339 - engines: {node: '>=10'} 3340 - hasBin: true 3341 3313 3342 3314 jest-changed-files@29.7.0: 3343 3315 resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} ··· 6089 6061 dependencies: 6090 6062 levn: 0.4.1 6091 6063 6092 - '@flydotio/dockerfile@0.5.9': 6093 - dependencies: 6094 - chalk: 5.3.0 6095 - diff: 5.2.0 6096 - ejs: 3.1.10 6097 - shell-quote: 1.8.1 6098 - yargs: 17.7.2 6099 - 6100 6064 '@hapi/hoek@9.3.0': {} 6101 6065 6102 6066 '@hapi/topo@5.1.0': ··· 7227 7191 7228 7192 assertion-error@2.0.1: {} 7229 7193 7230 - async@3.2.6: {} 7231 - 7232 7194 asynckit@0.4.0: {} 7233 7195 7234 7196 atomic-sleep@1.0.0: {} ··· 7705 7667 7706 7668 diff-sequences@29.6.3: {} 7707 7669 7708 - diff@5.2.0: {} 7709 - 7710 7670 dlv@1.1.3: {} 7711 7671 7712 7672 doctrine@2.1.0: ··· 7724 7684 7725 7685 ee-first@1.1.1: {} 7726 7686 7727 - ejs@3.1.10: 7728 - dependencies: 7729 - jake: 10.9.2 7730 - 7731 7687 electron-to-chromium@1.5.65: {} 7732 7688 7733 7689 emittery@0.13.1: {} ··· 8184 8140 file-entry-cache@8.0.0: 8185 8141 dependencies: 8186 8142 flat-cache: 4.0.1 8187 - 8188 - filelist@1.0.4: 8189 - dependencies: 8190 - minimatch: 5.1.6 8191 8143 8192 8144 fill-range@7.1.1: 8193 8145 dependencies: ··· 8691 8643 '@isaacs/cliui': 8.0.2 8692 8644 optionalDependencies: 8693 8645 '@pkgjs/parseargs': 0.11.0 8694 - 8695 - jake@10.9.2: 8696 - dependencies: 8697 - async: 3.2.6 8698 - chalk: 4.1.2 8699 - filelist: 1.0.4 8700 - minimatch: 3.1.2 8701 8646 8702 8647 jest-changed-files@29.7.0: 8703 8648 dependencies: