diff --git a/.github/workflows/backend_general.yml b/.github/workflows/backend_general.yml deleted file mode 100644 index ff2fdeb7..00000000 --- a/.github/workflows/backend_general.yml +++ /dev/null @@ -1,148 +0,0 @@ -name: Server - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - test: - name: Test - runs-on: ubuntu-latest - services: - postgres: - image: postgres:12 - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: password - POSTGRES_DB: postgres - ports: - - 5433:5432 - env: - SQLX_VERSION: 0.5.7 - SQLX_FEATURES: postgres - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Cache dependencies - id: cache-dependencies - uses: actions/cache@v2 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - - name: Install stable toolchain - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - - - name: Cache sqlx-cli - uses: actions/cache@v2 - id: cache-sqlx - with: - path: | - ~/.cargo/bin/sqlx - ~/.cargo/bin/cargo-sqlx - key: ${{ runner.os }}-sqlx-${{ env.SQLX_VERSION }}-${{ env.SQLX_FEATURES }} - - - name: Install sqlx-cli - uses: actions-rs/cargo@v1 - if: steps.cache-sqlx.outputs.cache-hit == false - with: - command: install - args: > - sqlx-cli - --force - --version=${{ env.SQLX_VERSION }} - --features=${{ env.SQLX_FEATURES }} - --no-default-features - --locked - - - name: Migrate database - run: | - sudo apt-get install libpq-dev -y - SKIP_DOCKER=true POSTGRES_PORT=5433 ./build/init_database.sh - - - name: Check sqlx-data.json is up-to-date - run: | - cargo sqlx prepare --check -- --bin appflowy_server - - - name: Run cargo test - run: cargo test - - fmt: - name: Rustfmt - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - override: true - - run: rustup component add rustfmt - - run: cargo fmt --all -- --check - - - clippy: - name: Clippy - runs-on: ubuntu-latest - services: - postgres: - image: postgres:12 - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: password - POSTGRES_DB: postgres - ports: - - 5433:5432 - env: - SQLX_VERSION: 0.5.7 - SQLX_FEATURES: postgres - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Install stable toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - components: clippy - override: true - - - name: Cache sqlx-cli - uses: actions/cache@v2 - id: cache-sqlx - with: - path: | - ~/.cargo/bin/sqlx - key: ${{ runner.os }}-sqlx-${{ env.SQLX_VERSION }}-${{ env.SQLX_FEATURES }} - - - name: Install sqlx-cli - uses: actions-rs/cargo@v1 - if: steps.cache-sqlx.outputs.cache-hit == false - with: - command: install - args: > - sqlx-cli - --force - --version=${{ env.SQLX_VERSION }} - --features=${{ env.SQLX_FEATURES }} - --no-default-features - --locked - - - name: Migrate database - run: | - sudo apt-get install libpq-dev -y - SKIP_DOCKER=true POSTGRES_PORT=5433 ./build/init_database.sh - - - run: rustup component add clippy - - run: cargo clippy -- -D warnings - - diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..c0582c4e --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,100 @@ +name: Server + +on: + push: + branches: [ main ] + pull_request: + types: [ opened, synchronize, reopened ] + branches: [ main ] + +jobs: + test: + name: Test + runs-on: ubuntu-latest + services: + postgres: + image: postgres:12 + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: password + POSTGRES_DB: postgres + ports: + - 5433:5432 + redis: + image: redis:7 + ports: + - 6379:6379 + env: + CARGO_TERM_COLOR: always + SQLX_VERSION: 0.6.2 + SQLX_FEATURES: "rustls,postgres" + steps: + - uses: actions/checkout@v3 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + with: + key: sqlx-${{ env.SQLX_VERSION }} + - name: Install sqlx-cli + run: + cargo install sqlx-cli + --version=${{ env.SQLX_VERSION }} + --features ${{ env.SQLX_FEATURES }} + --no-default-features + --locked + - name: Migrate database + run: | + sudo apt-get install libpq-dev -y + SKIP_DOCKER=true ./build/init_database.sh + - name: Check sqlx-data.json is up-to-date + run: | + cargo sqlx prepare --check -- --bin appflowy_server + - name: Run tests + run: cargo tes + + fmt: + name: Rustfmt + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: dtolnay/rust-toolchain@stable + with: + components: rustfmt + - name: Enforce formatting + run: cargo fmt --check + + + clippy: + name: Clippy + runs-on: ubuntu-latest + services: + postgres: + image: postgres:14 + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: password + POSTGRES_DB: postgres + ports: + - 5433:5432 + steps: + - uses: actions/checkout@v3 + - uses: dtolnay/rust-toolchain@stable + with: + components: clippy + - uses: Swatinem/rust-cache@v2 + with: + key: sqlx-${{ env.SQLX_VERSION }} + - name: Install sqlx-cli + run: + cargo install sqlx-cli + --version=${{ env.SQLX_VERSION }} + --features ${{ env.SQLX_FEATURES }} + --no-default-features + --locked + - name: Migrate database + run: | + sudo apt-get install libpq-dev -y + SKIP_DOCKER=true ./build/init_database.sh + - name: Linting + run: cargo clippy -- -D warnings + +