diff --git a/.env b/.env index aba3261ed..eaae24c66 100644 --- a/.env +++ b/.env @@ -1,6 +1,6 @@ BROWSER=none -REACT_APP_API_ROOT=https://farmhand.vercel.app/ -REACT_APP_NAME=$npm_package_name -REACT_APP_VERSION=$npm_package_version -REACT_APP_TURN_USERNAME= -REACT_APP_TURN_CREDENTIAL= +VITE_API_ROOT=https://farmhand.vercel.app/ +VITE_NAME=$npm_package_name +VITE_FARMHAND_PACKAGE_VERSION=$npm_package_version +VITE_TURN_USERNAME= +VITE_TURN_CREDENTIAL= diff --git a/.eslintrc.json b/.eslintrc.json index 3e6205b80..da44f4061 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,4 +1,7 @@ { + "globals": { + "vitest": true + }, "extends": ["react-app"], "rules": { "import/order": [ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7e0fadb6a..252a26ab6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,14 +24,7 @@ jobs: run: npm ci - name: 'Run tests' - run: npm test -- --reporters=default --reporters=jest-junit - - - name: Test Report - uses: dorny/test-reporter@v1 - with: - name: Jest Tests # Name of the check run which will be created - path: reports/jest-*.xml # Path to test results - reporter: jest-junit # Format of test results + run: npm test -- --coverage --run - name: 'Check types' # TODO: Change this to check:types when all type errors are fixed @@ -44,4 +37,4 @@ jobs: - uses: actions/upload-artifact@v3 with: name: build-output - path: build + path: dist diff --git a/.github/workflows/run-release.yml b/.github/workflows/run-release.yml index 943ad52ae..aaf9bebd1 100644 --- a/.github/workflows/run-release.yml +++ b/.github/workflows/run-release.yml @@ -61,13 +61,13 @@ jobs: tags: true branch: main - - run: PUBLIC_URL='./' npm run build + - run: npm run build -- --base="./" - run: npm publish env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - name: Prepare Web Artifacts - run: zip farmhand-web-${{ env.PACKAGE_VERSION }}.zip -r build/* + run: zip farmhand-web-${{ env.PACKAGE_VERSION }}.zip -r dist/* - name: Create Release id: create_release @@ -82,7 +82,7 @@ jobs: files: | ./farmhand-web-${{ env.PACKAGE_VERSION }}.zip - - run: node -e "console.log(require('./package.json').version)" > build/version.txt + - run: node -e "console.log(require('./package.json').version)" > dist/version.txt - name: Publish itch.io build uses: josephbmanley/butler-publish-itchio-action@master env: @@ -90,18 +90,18 @@ jobs: CHANNEL: html5 ITCH_GAME: Farmhand ITCH_USER: jeremyckahn - PACKAGE: build - VERSION_FILE: build/version.txt + PACKAGE: dist + VERSION_FILE: dist/version.txt - run: | - PUBLIC_URL='/farmhand' npm run build + npm run build -- --base='/farmhand' # https://github.com/marketplace/actions/deploy-to-github-pages - name: Deploy to jeremyckahn.github.io/farmhand uses: JamesIves/github-pages-deploy-action@v4 with: branch: gh-pages - folder: build + folder: dist clean: true single-commit: true diff --git a/.gitignore b/.gitignore index 8dca9e3b9..5a00c1ad1 100644 --- a/.gitignore +++ b/.gitignore @@ -4,5 +4,6 @@ build Session.vim .DS_Store .idea +coverage .vercel diff --git a/README.md b/README.md index 8a48b6e1f..2d579be36 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ Farmhand uses a [SemVer](https://semver.org/)-like versioning system. It differs ## Project overview -- This project is built with [Create React App](https://create-react-app.dev/), so please refer to the documentation of that project to learn about the development toolchain. +- This project uses [Vite](https://vitejs.dev/), so please refer to the documentation of that project to learn about the development toolchain. - Farmhand uses [Piskel](https://www.piskelapp.com/) for the art assets. ## Running locally @@ -138,13 +138,13 @@ The process will take several minutes to complete and it will notify the Discord Farmhand supports feature flags for code that should only be enabled in specific environments. To create a feature flag, add a line that looks like this in the relevant `.env` file: ``` -REACT_APP_ENABLE_[FEATURE_NAME]=true +VITE_ENABLE_[FEATURE_NAME]=true ``` Where `[FEATURE_NAME]` is replaced with the name of your feature. So, adding this to `.env.development.local`: ``` -REACT_APP_ENABLE_MINING=true +VITE_ENABLE_MINING=true ``` Would enable the `MINING` feature only for the local development environment. You can access the enabled feature flags at runtime by `import`ing the `features` Object from [`config.js`](https://github.com/jeremyckahn/farmhand/blob/develop/src/config.js). See [Adding Custom Environment Variables](https://create-react-app.dev/docs/adding-custom-environment-variables/) for more information on how to use environment variables. diff --git a/public/index.html b/index.html similarity index 82% rename from public/index.html rename to index.html index 87e8afb3e..83fedcd43 100644 --- a/public/index.html +++ b/index.html @@ -6,39 +6,31 @@ + - - - - + Farmhand