diff --git a/.github/workflows/client.yml b/.github/workflows/client.yml new file mode 100644 index 000000000..8ded66d1d --- /dev/null +++ b/.github/workflows/client.yml @@ -0,0 +1,110 @@ +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@v2 + with: + version: 7.20.0 + + - uses: actions/setup-node@v3 + with: + node-version: 16 + 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' }} + steps: + - name: Checkout + uses: actions/checkout@v3 + + - uses: pnpm/action-setup@v2 + with: + version: 7.20.0 + + - uses: actions/setup-node@v3 + with: + node-version: 16 + 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 + 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: "6LdRRKopAAAAAGNmmGSmUvkD64nysrFgSSWLq9LL" + 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: "~/boku" + + - name: Build Kamaitachi + run: pnpm --filter tachi-client build + env: + VITE_GOATCOUNTER: "https://tachi.goatcounter.com/count" + VITE_SERVER_URL: "https://kamai.tachi.ac" + VITE_EAG_CLIENT_ID: "C341A6CA3E72D48F0B20E84C045D15BFACD88E0A" + VITE_FLO_CLIENT_ID: "F0C0F66355B954F5DB5472AE21C59295403D60CC" + 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: "6LdRRKopAAAAAGNmmGSmUvkD64nysrFgSSWLq9LL" + TACHI_NAME: "Kamaitachi" + BUILD_OUT_DIR: ~/kamai + + - name: Deploy Kamaitachi + run: scp -r ~/kamai ci@"$SSH_HOST":tachi-client + env: + SSH_HOST: ${{secrets.SSH_HOST}} + + - name: Deploy Bokutachi + run: scp -r ~/boku ci@"$SSH_HOST":tachi-client + env: + SSH_HOST: ${{secrets.SSH_HOST}} diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml index dfd1a42ba..85ad240ec 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/server.yml @@ -59,7 +59,7 @@ jobs: defaults: run: working-directory: ./server - if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} + if: ${{ github.event_name == 'push' }} steps: - name: Checkout uses: actions/checkout@v3 diff --git a/README.md b/README.md index 015a1330d..14277760e 100644 --- a/README.md +++ b/README.md @@ -18,11 +18,11 @@ properly is _just_ as important! By using Tachi, you get access to powerful, novel rhythm game score-tracking features, like automatically breaking your scores into sessions, setting goals and rivals, and more! -There are way more features that Tachi has, and you can read about all of them [here](https://docs.bokutachi.xyz/wiki/features). +There are way more features that Tachi has, and you can read about all of them [here](https://docs.tachi.ac/wiki/features). ## Setup -Check the [Documentation](https://docs.bokutachi.xyz/contributing/setup) for how to set Tachi up. +Check the [Documentation](https://docs.tachi.ac/contributing/setup) for how to set Tachi up. You can then check the component-specific guides to see how to run those components and contribute back. diff --git a/bot/src/slashCommands/commands/faq.ts b/bot/src/slashCommands/commands/faq.ts index c55b21860..16e6c5d67 100644 --- a/bot/src/slashCommands/commands/faq.ts +++ b/bot/src/slashCommands/commands/faq.ts @@ -8,17 +8,17 @@ const NEUTRAL_FAQ_ENTRIES: Record = { duplicates: `Scores on ${ServerConfig.name} are deduplicated based on your score and lamp (and some other things). If you happen to get the exact same score twice, ${ServerConfig.name} will **ignore** the second one! There are legitimate reasons for this -- it's very common for people to import the same scores twice through file uploads or import scripts. -For more info on why this is a fundamental limitation of ${ServerConfig.name}, check [the documentation](https://docs.bokutachi.xyz/wiki/score-oddities/#deduplication-false-positives-all-games).`, +For more info on why this is a fundamental limitation of ${ServerConfig.name}, check [the documentation](https://docs.tachi.ac/wiki/score-oddities/#deduplication-false-positives-all-games).`, contribute: `Contributing to ${ServerConfig.name} in any way will get you the Contributor role, and a cool green name.\n Contributors who save us hours (or more) of dev time, or are just generally really supportive will get the Significant Contributor role, and an even cooler orange name. -${ServerConfig.name} is an Open Source project. Feel free to read our [contribution guide](https://docs.bokutachi.xyz/contributing/), or just generally ask for stuff to help out with!`, - docs: `Documentation for ${ServerConfig.name} is stored at https://docs.bokutachi.xyz.`, +${ServerConfig.name} is an Open Source project. Feel free to read our [contribution guide](https://docs.tachi.ac/contributing/), or just generally ask for stuff to help out with!`, + docs: `Documentation for ${ServerConfig.name} is stored at https://docs.tachi.ac.`, pbs: `A PB is all of your best scores on that specific chart joined together. For most games, this means joining your best score with your best lamp. -Read more about this [here](https://docs.bokutachi.xyz/wiki/pbs-scores/)`, +Read more about this [here](https://docs.tachi.ac/wiki/pbs-scores/)`, filter_directives: `Filter Directives are a fancy way of *filtering* rows inside a table. They provide an advanced toolkit for users to perform complex queries on their data. -Read more about them [here](https://docs.bokutachi.xyz/wiki/filter-directives/)`, +Read more about them [here](https://docs.tachi.ac/wiki/filter-directives/)`, dans: `Dans are good as a milestone for your skill. However, focusing too much on dans can be massively detrimental to your skill as a player.\n Playing a fixed set of charts all the time will not expose you to more things, and will generally slow down your improvement as a player. Furthermore, they're stressful, and designed to be played *just* at the cusp of what you can play.\n In short. Don't play dans too much.`, diff --git a/client/example/.env b/client/example/.env index bb5b1eebb..1e8667e57 100644 --- a/client/example/.env +++ b/client/example/.env @@ -2,7 +2,7 @@ BROWSER="none" VITE_TCHIC_MODE="omni" VITE_SERVER_URL="https://127.0.0.1:8080" VITE_CDN_URL="https://127.0.0.1:8080/cdn" -VITE_GIT_REPO="GitHub:TNG-dev/Tachi" +VITE_GIT_REPO="GitHub:zkldi/Tachi" VITE_EAG_CLIENT_ID="" VITE_MIN_CLIENT_ID="" VITE_FLO_CLIENT_ID="" diff --git a/client/src/app/pages/RegisterPage.tsx b/client/src/app/pages/RegisterPage.tsx index d07ca40d0..1ebf870bb 100644 --- a/client/src/app/pages/RegisterPage.tsx +++ b/client/src/app/pages/RegisterPage.tsx @@ -139,7 +139,7 @@ export default function RegisterPage() {

Hey! Before you make an account, please read the{" "}
  • Download the latest version of the {name} IR{" "} - + here . diff --git a/client/src/app/pages/dashboard/import/ITGHookPage.tsx b/client/src/app/pages/dashboard/import/ITGHookPage.tsx index 0b29f919c..bd2f62956 100644 --- a/client/src/app/pages/dashboard/import/ITGHookPage.tsx +++ b/client/src/app/pages/dashboard/import/ITGHookPage.tsx @@ -49,7 +49,7 @@ export default function ITGHookPage() { Edit HttpAllowHosts=*.groovestats.com in{" "} Preferences.ini to{" "} - HttpAllowHosts=*.bokutachi.xyz,bokutachi.xyz,*.groovestats.com + HttpAllowHosts=*.boku.tachi.ac,boku.tachi.ac,*.groovestats.com
  • diff --git a/client/src/app/pages/dashboard/import/ImportPage.tsx b/client/src/app/pages/dashboard/import/ImportPage.tsx index 8f15a29ca..06cd4f887 100644 --- a/client/src/app/pages/dashboard/import/ImportPage.tsx +++ b/client/src/app/pages/dashboard/import/ImportPage.tsx @@ -48,7 +48,7 @@ export default function ImportPage({ user }: { user: UserDocument }) { Discord.
    Know how to program, and want to write a script yourself? Check out{" "} - + Batch Manual . @@ -558,7 +558,7 @@ function ImportTypeInfoCard({ <> This is for programmers to create their own import scripts.
    Check the{" "} - + documentation . diff --git a/client/src/app/pages/dashboard/misc/SupportBanner.tsx b/client/src/app/pages/dashboard/misc/SupportBanner.tsx index da5493ccf..3074cb9cb 100644 --- a/client/src/app/pages/dashboard/misc/SupportBanner.tsx +++ b/client/src/app/pages/dashboard/misc/SupportBanner.tsx @@ -87,7 +87,7 @@ export default function SupportBanner({ user }: { user: UserDocument }) {

    Alternatively, you can star or contribute to the fully-open-source{" "} - GitHub Repo. + GitHub Repo. This makes me look cool to employers! diff --git a/client/src/app/pages/dashboard/misc/SupportMePage.tsx b/client/src/app/pages/dashboard/misc/SupportMePage.tsx index 44d48e1be..36334c26a 100644 --- a/client/src/app/pages/dashboard/misc/SupportMePage.tsx +++ b/client/src/app/pages/dashboard/misc/SupportMePage.tsx @@ -19,7 +19,7 @@ export default function SupportMePage() {

    Alternatively, you can star the{" "} - GitHub Repo. + GitHub Repo. This makes me look cool to employers!

    diff --git a/client/src/app/pages/dashboard/users/UserIntegrationsPage.tsx b/client/src/app/pages/dashboard/users/UserIntegrationsPage.tsx index 88fb60771..e98c1c3e6 100644 --- a/client/src/app/pages/dashboard/users/UserIntegrationsPage.tsx +++ b/client/src/app/pages/dashboard/users/UserIntegrationsPage.tsx @@ -84,7 +84,7 @@ function OAuthClientPage() { with {TachiConfig.name}.
    You can read the documentation{" "} - + here ! @@ -239,7 +239,7 @@ function CreateNewOAuthClient({ setClients }: { setClients: SetState%%TACHI_KEY%% will be replaced with the generated key. Read more about client file flow{" "} - + here . @@ -555,7 +555,7 @@ function EditClientModal({ /> Where to send webhook events to. Please read the{" "} - + Webhook Documentation {" "} before using this, as there are necessary security precautions. @@ -573,7 +573,7 @@ function EditClientModal({ In what format should a generated API Key be shown to the user? This only applies to Client File Flow. %%TACHI_KEY%% will be replaced with the generated key. Read more about client file flow{" "} - + here . diff --git a/client/src/app/pages/dashboard/utils/SeedsViewer.tsx b/client/src/app/pages/dashboard/utils/SeedsViewer.tsx index ac326cef6..75309f844 100644 --- a/client/src/app/pages/dashboard/utils/SeedsViewer.tsx +++ b/client/src/app/pages/dashboard/utils/SeedsViewer.tsx @@ -35,7 +35,7 @@ export default function SeedsViewer() { To view the state of a given commit or repository, use the select boxes below.
    For more information what all of this is about and how it works, see{" "} - + the documentation . diff --git a/client/src/components/imports/TISInfo.tsx b/client/src/components/imports/TISInfo.tsx index 8c5914b79..e5f658c76 100644 --- a/client/src/components/imports/TISInfo.tsx +++ b/client/src/components/imports/TISInfo.tsx @@ -9,7 +9,7 @@ export default function TISInfo({ name }: { name: string }) {
    1. Download the latest version of the {TachiConfig.name} Import Scripts{" "} - + here . diff --git a/client/src/components/layout/footer/Footer.tsx b/client/src/components/layout/footer/Footer.tsx index 3bc76fe9f..63fee1c68 100644 --- a/client/src/components/layout/footer/Footer.tsx +++ b/client/src/components/layout/footer/Footer.tsx @@ -50,7 +50,7 @@ export function Footer() { Rules @@ -82,14 +82,14 @@ export function Footer() { )} Source Code Developer Documentation diff --git a/client/src/components/layout/misc/EmailVerify.tsx b/client/src/components/layout/misc/EmailVerify.tsx index 26565f7f4..da3c4dcf9 100644 --- a/client/src/components/layout/misc/EmailVerify.tsx +++ b/client/src/components/layout/misc/EmailVerify.tsx @@ -53,12 +53,6 @@ export default function EmailVerify({ )}
      It might've ended up in your spam, so check there too! -
      - - Our domain ends with .xyz! As such, most email services will throw our - email in spam, or hold it in limbo for a couple minutes. Please be patient. Sending - email from an .xyz domain SUCKS! -