diff --git a/.github/workflows/benchmark-update.yml b/.github/workflows/benchmark-update.yml new file mode 100644 index 0000000000..c9ac9e60e2 --- /dev/null +++ b/.github/workflows/benchmark-update.yml @@ -0,0 +1,41 @@ +name: "Benchmark Update Baseline" + +on: + push: + branches: + - master + +jobs: + benchmark-update: + name: Benchmark Update Baseline + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + token: ${{ secrets.GH_TOKEN }} + fetch-depth: 1 + + - name: Build & Run Appwrite + run: | + export COMPOSE_INTERACTIVE_NO_CLI + export DOCKER_BUILDKIT=1 + export COMPOSE_DOCKER_CLI_BUILD=1 + export BUILDKIT_PROGRESS=plain + docker pull composer:2.0 + docker compose build appwrite + docker compose up -d + sleep 30 + + - name: Doctor + run: docker compose exec -T appwrite doctor + + - name: Run benchmark and update baseline + run: docker run --rm -v $PWD:/app composer sh -c \ + "composer install --profile --ignore-platform-reqs && composer benchmark-tag" + + - name: Commit updated baseline benchmark + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: Update benchmark baseline diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 4a0ae83377..0000000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: "Benchmark" - -on: [pull_request] - -jobs: - benchmark: - name: Benchmark - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - fetch-depth: 2 - - - run: git checkout HEAD^2 - - - name: Run benchmark against baseline - run: docker run --rm -v $PWD:/app composer sh -c \ - "composer install --profile --ignore-platform-reqs && composer benchmark" diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml deleted file mode 100644 index ffb8a097d3..0000000000 --- a/.github/workflows/linter.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: "Linter" - -on: [pull_request] -jobs: - lint: - name: Linter - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - fetch-depth: 2 - - - run: git checkout HEAD^2 - - - name: Run Linter - run: | - docker run --rm -v $PWD:/app composer sh -c \ - "composer install --profile --ignore-platform-reqs && composer lint" diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1d1d10c8a1..1f8f4b463c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -3,21 +3,23 @@ name: "Tests" on: [pull_request] jobs: tests: - name: Unit & E2E + name: Lint, Test, Benchmark runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v2 + - name: Checkout Repository + uses: actions/checkout@v3 with: - # We must fetch at least the immediate parents so that if this is - # a pull request then we can checkout the head. fetch-depth: 2 - # If this run was triggered by a pull request event, then checkout - # the head of the pull request instead of the merge commit. - - run: git checkout HEAD^2 - if: ${{ github.event_name == 'pull_request' }} + - name: Checkout Pull Request HEAD + run: git checkout HEAD^2 + + - name: Install Dependencies + run: docker run --rm -v $PWD:/app composer install --profile --ignore-platform-reqs + + - name: Run Linter + run: docker run --rm -v $PWD:/app composer lint - name: Build Appwrite # Upstream bug causes buildkit pulls to fail so prefetch base images @@ -31,11 +33,15 @@ jobs: docker compose build appwrite docker compose up -d sleep 30 - - name: Doctor + + - name: Run Doctor run: docker compose exec -T appwrite doctor - - name: Environment Variables + - name: Print Environment Variables run: docker compose exec -T appwrite vars - name: Run Tests run: docker compose exec -T appwrite test --debug + + - name: Run Benchmark + run: docker run --rm -v $PWD:/app composer benchmark-compare diff --git a/composer.json b/composer.json index cafaafbc59..a30cbce968 100644 --- a/composer.json +++ b/composer.json @@ -19,11 +19,11 @@ ], "benchmark-tag": [ "Composer\\Config::disableProcessTimeout", - "vendor/bin/phpbench run --tag=baseline --report=appwrite" + "vendor/bin/phpbench run --report=appwrite --tag=baseline" ], "benchmark-compare": [ "Composer\\Config::disableProcessTimeout", - "vendor/bin/phpbench run --ref=baseline --report=appwrite" + "vendor/bin/phpbench run --report=appwrite --ref=baseline" ] }, "autoload": { diff --git a/composer.lock b/composer.lock index af39cedea6..d05251b3af 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d1c2b8d296ce8a5f91707deb41cd43ba", + "content-hash": "31c36a15f1b974f2c3ed67ceb084382b", "packages": [ { "name": "adhocore/jwt", @@ -6306,14 +6306,7 @@ "time": "2022-05-24T19:45:58+00:00" } ], - "aliases": [ - { - "package": "utopia-php/database", - "version": "0.28.0.0", - "alias": "0.26.99", - "alias_normalized": "0.26.99.0" - } - ], + "aliases": [], "minimum-stability": "stable", "stability-flags": [], "prefer-stable": false, @@ -6339,5 +6332,5 @@ "platform-overrides": { "php": "8.0" }, - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.3.0" }