diff --git a/.github/workflows/deploy-fly.yml b/.github/workflows/deploy-fly.yml new file mode 100644 index 00000000..38f117e8 --- /dev/null +++ b/.github/workflows/deploy-fly.yml @@ -0,0 +1,80 @@ +name: Deploy to k8s + +on: + push: + branches: + - release/2.0 + +env: + ILLA_MIXPANEL_API_KEY: ${{ secrets.ILLA_MIXPANEL_API_KEY }} + ILLA_AMPLITUDE_API_KEY: ${{ secrets.ILLA_AMPLITUDE_API_KEY }} + ILLA_MUI_LICENSE: ${{ secrets.ILLA_MUI_LICENSE }} + ILLA_SENTRY_AUTH_TOKEN: ${{ secrets.ILLA_SENTRY_AUTH_TOKEN }} + DO_CLUSTER: ${{ secrets.DO_CLUSTER }} + DOCKER_LOGIN: ${{ secrets.DOCKER_LOGIN }} + DOCKER_PWD: ${{ secrets.DOCKER_PWD }} + DO_TOKEN: ${{ secrets.DO_TOKEN }} + ILLA_INTERCOM_APP_ID: ${{ secrets.ILLA_INTERCOM_APP_ID }} + ILLA_POSTHOG_KEY: ${{ secrets.ILLA_POSTHOG_KEY }} +jobs: + build: + name: Build website + runs-on: ubuntu-latest + environment: + name: "test" + env: + ILLA_API_BASE_URL: ${{ vars.ILLA_API_BASE_URL }} + ILLA_APP_ENV: ${{ vars.ILLA_APP_ENV }} + ILLA_CLOUD_URL: ${{ vars.ILLA_CLOUD_URL }} + ILLA_MARKET_URL: ${{ vars.ILLA_MARKET_URL }} + ILLA_PERIPHERAL_API_BASE_URL: ${{ vars.ILLA_PERIPHERAL_API_BASE_URL }} + + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - uses: actions/setup-node@v4 + with: + node-version: 20.12.2 + + - uses: pnpm/action-setup@v3 + with: + version: 9.0.6 + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Build website + run: | + echo "Building for $GITHUB_REF_NAME branch,ILLA APP ENV is $ILLA_APP_ENV" + pnpm build + + - name: Compress tipis + run: | + tar -czvf tipis-fe.tar.gz ./apps/agent/dist ./nginx.conf ./Dockerfile ./tipisai-frontend.conf + + - name: Upload build artifacts + uses: actions/upload-artifact@v4 + with: + name: build-artifacts + path: tipis-fe.tar.gz + + deploy: + needs: build + name: Deploy to fly + runs-on: ubuntu-latest + steps: + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifacts + + - name: Load build artifacts + run: | + tar -xzvf tipis-fe.tar.gz + + - uses: superfly/flyctl-actions/setup-flyctl@master + - run: flyctl deploy --remote-only + env: + FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} diff --git a/fly.toml b/fly.toml new file mode 100644 index 00000000..609dee7b --- /dev/null +++ b/fly.toml @@ -0,0 +1,22 @@ +# fly.toml app configuration file generated for tipis on 2024-05-13T15:13:48+08:00 +# +# See https://fly.io/docs/reference/configuration/ for information about how to use this file. +# + +app = 'tipis' +primary_region = 'lax' + +[build] + +[http_service] + internal_port = 80 + force_https = true + auto_stop_machines = true + auto_start_machines = true + min_machines_running = 0 + processes = ['app'] + +[[vm]] + memory = '1gb' + cpu_kind = 'shared' + cpus = 1