name: Client CI/CD on: push: branches: - "main" paths: - "client/**" - "common/**" pull_request: branches: - "main" paths: - "server/**" - "common/**" workflow_dispatch: jobs: test: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - uses: pnpm/action-setup@v4 with: version: 8.15.6 - uses: actions/setup-node@v3 with: node-version: 20 cache: pnpm - name: Install dependencies run: pnpm --filter tachi-client... --filter . install - name: Lint run: pnpm --filter tachi-client lint - name: Typecheck run: pnpm --filter tachi-client typecheck deploy: runs-on: [ubuntu-latest] needs: test if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} steps: - name: Checkout uses: actions/checkout@v3 - name: Install rsync run: sudo apt install -y rsync - uses: pnpm/action-setup@v4 with: version: 8.15.6 - uses: actions/setup-node@v3 with: node-version: 20 cache: pnpm - name: Enable SSH Key run: | mkdir -p ~/.ssh echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa sudo chmod 600 ~/.ssh/id_rsa echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts env: SSH_PRIVATE_KEY: ${{secrets.SSH_PRIVATE_KEY}} SSH_KNOWN_HOSTS: ${{secrets.SSH_KNOWN_HOSTS}} - name: Install dependencies run: pnpm --filter tachi-client... --filter . install - name: Build Bokutachi if: github.ref == 'refs/heads/main' run: pnpm --filter tachi-client build env: VITE_GIT_REPO: "GitHub:zkldi/Tachi" VITE_TCHIC_MODE: "boku" VITE_GOATCOUNTER: "https://tachi.goatcounter.com/count" VITE_RECAPTCHA_KEY: "6LcsYbIpAAAAAEJffjIXmbQcxj_SBZG7BnSPjF4L" VITE_SERVER_URL: "https://boku.tachi.ac" VITE_DISCORD: "https://discord.gg/E4n8ZZF5ES" VITE_CDN_URL: "https://cdn-boku.tachi.ac" TACHI_NAME: "Bokutachi" BUILD_OUT_DIR: /home/runner/boku - name: Build Kamaitachi if: github.ref == 'refs/heads/main' run: pnpm --filter tachi-client build env: VITE_MANDATE_LOGIN: true VITE_GOATCOUNTER: "https://tachi.goatcounter.com/count" VITE_SERVER_URL: "https://kamai.tachi.ac" VITE_EAG_CLIENT_ID: "332B9789DEA10B94DB0E345A6F8ECF54BB86E6DD" VITE_FLO_CLIENT_ID: "98B965554FB2341D969667F3D04CFC28F8C080ED" VITE_MIN_CLIENT_ID: "A0DBDBB063CD800530EF01C6488B282137E0191E" VITE_DISCORD: "https://discord.gg/NNgGJbpQUj" VITE_TCHIC_MODE: "kamai" VITE_CDN_URL: "https://cdn-kamai.tachi.ac" VITE_GIT_REPO: "GitHub:zkldi/Tachi" VITE_RECAPTCHA_KEY: "6LcsYbIpAAAAAEJffjIXmbQcxj_SBZG7BnSPjF4L" TACHI_NAME: "Kamaitachi" BUILD_OUT_DIR: /home/runner/kamai - name: Deploy Kamaitachi if: github.ref == 'refs/heads/main' run: rsync --recursive --compress --delete --progress ~/kamai/. ci@"$TACHI_HOST":tachi-client/kamai env: TACHI_HOST: ${{secrets.TACHI_HOST}} - name: Deploy Bokutachi if: github.ref == 'refs/heads/main' run: rsync --recursive --compress --delete --progress ~/boku/. ci@"$TACHI_HOST":tachi-client/boku env: TACHI_HOST: ${{secrets.TACHI_HOST}} - name: Build Staging run: pnpm --filter tachi-client build env: VITE_MANDATE_LOGIN: true VITE_GOATCOUNTER: "https://tachi.goatcounter.com/count" VITE_SERVER_URL: "https://staging.tachi.ac" VITE_TCHIC_MODE: "omni" VITE_CDN_URL: "https://cdn-staging.tachi.ac" VITE_GIT_REPO: "GitHub:zkldi/Tachi" VITE_RECAPTCHA_KEY: "6LcsYbIpAAAAAEJffjIXmbQcxj_SBZG7BnSPjF4L" TACHI_NAME: "Tachi Staging" BUILD_OUT_DIR: /home/runner/staging - name: Deploy Staging run: rsync --recursive --compress --delete --progress ~/staging/. ci@"$TACHI_HOST":tachi-client/staging env: TACHI_HOST: ${{secrets.TACHI_HOST}}