Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(sqlite-storage): scaffold workspace #1071

Merged
merged 15 commits into from
Apr 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/actions/setup-project/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Setup project
description: Install required tools
inputs:
node-version:
required: false
description: node version to install
default: 20.10.0 # is already cached in Ubuntu 22.04 runner
windows-fix:
required: false
description: https://github.com/actions/setup-node/issues/899#issuecomment-1837381044
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If corepack randomly fails on Windows, maybe we shouldn't enable it?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GH action failed because it was not enabled in first place - that issue came from setup-node itself. Running it first without the cache enables corepack properly (probably not doing checks for yarn versions behind the scene). So the fix here is simply setting node + corepack then enable cache

default: "false"
runs:
using: composite
steps:
- uses: actions/setup-node@v4
if: ${{ inputs.windows-fix == 'true' }}
name: (Windows fix) Setup node without cache
with:
node-version: ${{ inputs.node-version }}
- name: Enable corepack
shell: bash
run: |
corepack enable
yarn --version
- uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
cache: "yarn"
120 changes: 53 additions & 67 deletions .github/workflows/ci.yml → .github/workflows/default-storage.yml
Original file line number Diff line number Diff line change
@@ -1,58 +1,35 @@
name: CI
name: Default storage
on:
push:
branches:
- main
pull_request:
jobs:
format:
name: Format
changes:
name: report changed files
runs-on: ubuntu-latest
outputs:
changed: ${{ steps.filter.outputs.storage }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3.6.0
with:
node-version: 18.16.1
cache: yarn
- name: Install JS dependencies
run: yarn
- name: Format
run: |
yarn format
git diff --exit-code
review:
name: Review
runs-on: ubuntu-latest
strategy:
matrix:
test-name: [lint, ts]
workspace: [default-storage, api]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3.6.0
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
node-version: 18.16.1
cache: yarn
- name: Install JS dependencies
run: yarn
- name: Run test ${{ matrix.test-name }}
run: yarn test:${{ matrix.test-name }}
working-directory: packages/${{ matrix.workspace }}
token: ${{ secrets.GH_RELEASE_TOKEN }}
filters: |
storage:
- 'packages/default-storage/**'

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

small bonus 🙏

android:
name: Android
needs: changes
if: ${{ needs.changes.outputs.changed == 'true' }}
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3.6.0
with:
node-version: 18.16.1
cache: yarn
uses: actions/checkout@v4
- name: Setup project
uses: ./.github/actions/setup-project
- name: Install JS dependencies
run: |
yarn
Expand All @@ -69,21 +46,20 @@ jobs:

ios:
name: iOS
needs: changes
if: ${{ needs.changes.outputs.changed == 'true' }}
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup project
uses: ./.github/actions/setup-project
- name: Cache /.ccache
uses: actions/cache@v3
with:
path: packages/default-storage/.ccache
key: ccache-ios-${{ hashFiles('yarn.lock') }}
restore-keys: ccache-ios-
- name: Set up Node.js
uses: actions/setup-node@v3.6.0
with:
node-version: 18.16.1
cache: yarn
- name: Install JS dependencies
run: |
yarn
Expand All @@ -102,21 +78,20 @@ jobs:

macos:
name: macOS
needs: changes
if: ${{ needs.changes.outputs.changed == 'true' }}
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup project
uses: ./.github/actions/setup-project
- name: Cache /.ccache
uses: actions/cache@v3
with:
path: packages/default-storage/.ccache
key: ccache-macos-${{ hashFiles('yarn.lock') }}
restore-keys: ccache-macos-
- name: Set up Node.js
uses: actions/setup-node@v3.6.0
with:
node-version: 18.16.1
cache: yarn
- name: Install JS dependencies
run: |
yarn
Expand All @@ -140,19 +115,33 @@ jobs:

windows:
name: Windows
needs: changes
if: ${{ needs.changes.outputs.changed == 'true' }}
runs-on: windows-2022
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup project
uses: ./.github/actions/setup-project
with:
windows-fix: true
- uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
cache: "yarn"
- name: Enable corepack
shell: bash
run: |
corepack enable
yarn --version
- uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
cache: "yarn"
- name: Set up MSBuild
uses: microsoft/setup-msbuild@v1.3
- name: Setup VSTest.console.exe
uses: darenm/Setup-VSTest@v1.2
- name: Checkout
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3.6.0
with:
node-version: 18.16.1
cache: yarn
- name: Install JS dependencies
run: |
yarn
Expand All @@ -167,19 +156,16 @@ jobs:

release:
name: Release
needs: [format, review, android, ios, macos, windows]
needs: [android, ios, macos, windows]
if: github.event_name == 'push'
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Set up Node.js
uses: actions/setup-node@v3.6.0
with:
node-version: 18.16.1
cache: yarn
- name: Setup project
uses: ./.github/actions/setup-project
- name: Install JS dependencies
run: |
yarn
Expand Down
19 changes: 19 additions & 0 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: PR review
on:
pull_request:
jobs:
code-quality:
name: Code quality
runs-on: ubuntu-latest
strategy:
matrix:
test-name: [lint, ts, format]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup project
uses: ./.github/actions/setup-project
- name: Install dependencies
run: yarn
- name: test ${{ matrix.test-name }}
run: yarn test:${{ matrix.test-name }}
2 changes: 1 addition & 1 deletion .github/workflows/stale.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Mark stale issues and pull requests
name: Stale issue
on:
schedule:
- cron: "30 1 * * *"
Expand Down
11 changes: 4 additions & 7 deletions .github/workflows/website-deployment.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Website Deployment
name: Website
on:
push:
branches:
Expand All @@ -13,12 +13,9 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v3
- name: Cache/restore dependencies
uses: actions/cache@v3
with:
path: .yarn
key: website-${{ hashFiles('yarn.lock') }}
uses: actions/checkout@v4
- name: Setup project
uses: ./.github/actions/setup-project
- name: Install dependencies
run: yarn
working-directory: ./packages/website
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
.idea
.yarn
.gradle
!.yarn/releases
node_modules/
npm-debug.log
yarn-error.log
Expand Down Expand Up @@ -31,3 +30,5 @@ local.properties

#workspaces
/packages/*/lib
.turbo
build/
3 changes: 3 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"trailingComma": "es5"
}
873 changes: 0 additions & 873 deletions .yarn/releases/yarn-3.4.1.cjs

This file was deleted.

29 changes: 18 additions & 11 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,31 @@
compressionLevel: mixed

enableGlobalCache: false

enableTelemetry: false

logFilters:
- code: YN0007 # X must be built because it never has been before or the last one failed
- code: YN0007
level: discard
- code: YN0008 # X must be rebuilt because its dependency tree changed
- code: YN0008
level: discard
- code: YN0013 # X can't be found in the cache and will be fetched from the remote registry
- code: YN0013
level: discard

nodeLinker: node-modules

npmRegistryServer: "https://registry.npmjs.org"

packageExtensions:
"@expo/cli@*":
peerDependencies:
"expo-modules-autolinking": "*"
"babel-preset-expo@*":
expo-modules-autolinking: "*"
babel-preset-expo@*:
peerDependencies:
"@babel/core": "^7.0.0-0"
"expo@*":
"@babel/core": ^7.0.0-0
expo-asset@*:
peerDependencies:
"@babel/core": "^7.0.0-0"
"expo-asset@*":
expo: "*"
expo@*:
peerDependencies:
"expo": "*"
yarnPath: .yarn/releases/yarn-3.4.1.cjs
"@babel/core": ^7.0.0-0
12 changes: 10 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,24 @@
"workspaces": [
"packages/*"
],
"packageManager": "yarn@3.4.1",
"packageManager": "yarn@4.1.1",
"engines": {
"node": "v20.11.1"
},
"scripts": {
"build": "turbo run build",
"format": "concurrently 'yarn:format:*'",
"format:c": "clang-format -i $(git ls-files '*.cpp' '*.h' '*.m' '*.mm') --style file:.config/.clang-format",
"format:js": "prettier --write --loglevel error $(git ls-files '*.js' '*.json' '*.ts' '*.tsx' '*.yml' 'README.md')"
"format:js": "prettier --write $(git ls-files '*.js' '*.json' '*.ts' '*.tsx' '*.yml' 'README.md')",
"test:lint": "turbo run test:lint",
"test:ts": "turbo run test:ts",
"test:format": "prettier --check --loglevel warn $(git ls-files '*.js' '*.json' '*.ts' '*.tsx' '*.yml' 'README.md')"
},
"devDependencies": {
"concurrently": "^8.2.2",
"eslint": "^8.54.0",
"prettier": "^2.8.8",
"turbo": "^1.12.5",
"typescript": "^5.3.0"
},
"resolutions": {
Expand Down
5 changes: 0 additions & 5 deletions packages/api/jest.config.js

This file was deleted.

6 changes: 1 addition & 5 deletions packages/api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@
"prepack": "yarn build",
"build": "bob build",
"test:lint": "eslint $(git ls-files '*.js' '*.ts' '*.tsx')",
"test:ts": "tsc --noEmit",
"test:jest": "jest"
"test:ts": "tsc --noEmit"
},
"keywords": [
"react-native",
Expand All @@ -31,12 +30,9 @@
"author": "Krzysztof Borowy <contact@kborowy.com>",
"license": "MIT",
"devDependencies": {
"@types/jest": "29.5.4",
"eslint": "^8.54.0",
"jest": "29.5.0",
"prettier": "^2.8.8",
"react-native-builder-bob": "0.20.0",
"ts-jest": "29.1.1",
"typescript": "^5.3.0"
},
"react-native-builder-bob": {
Expand Down
3 changes: 0 additions & 3 deletions packages/api/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
{
"extends": "../../.config/tsconfig.base.json",
"compilerOptions": {
"types": ["jest"]
},
"include": ["example", "src"]
}
Loading
Loading