2021-10-23 04:26:17 +13:00
|
|
|
name: "Tests"
|
2022-02-10 08:29:26 +13:00
|
|
|
|
2023-02-22 11:58:26 +13:00
|
|
|
concurrency:
|
|
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
|
|
cancel-in-progress: true
|
|
|
|
|
2023-09-09 07:03:55 +12:00
|
|
|
env:
|
2023-09-09 10:11:40 +12:00
|
|
|
IMAGE: appwrite-dev
|
2023-10-27 05:43:50 +13:00
|
|
|
CACHE_KEY: appwrite-dev-${{ github.event.pull_request.head.sha }}
|
2023-09-09 07:03:55 +12:00
|
|
|
|
2021-10-23 04:26:17 +13:00
|
|
|
on: [pull_request]
|
2023-09-09 08:07:13 +12:00
|
|
|
|
2021-10-23 04:26:17 +13:00
|
|
|
jobs:
|
2023-09-09 07:03:55 +12:00
|
|
|
setup:
|
|
|
|
name: Setup & Build Appwrite Image
|
2022-09-05 08:05:30 +12:00
|
|
|
runs-on: ubuntu-latest
|
2021-10-23 04:26:17 +13:00
|
|
|
steps:
|
2023-10-27 05:15:52 +13:00
|
|
|
- name: Checkout repository
|
|
|
|
uses: actions/checkout@v3
|
|
|
|
with:
|
|
|
|
submodules: recursive
|
|
|
|
|
|
|
|
- name: Set up Docker Buildx
|
|
|
|
uses: docker/setup-buildx-action@v2
|
|
|
|
|
|
|
|
- name: Build Appwrite
|
|
|
|
uses: docker/build-push-action@v3
|
|
|
|
with:
|
|
|
|
context: .
|
|
|
|
push: false
|
|
|
|
tags: ${{ env.IMAGE }}
|
|
|
|
load: true
|
|
|
|
cache-from: type=gha
|
|
|
|
cache-to: type=gha,mode=max
|
|
|
|
outputs: type=docker,dest=/tmp/${{ env.IMAGE }}.tar
|
|
|
|
build-args: |
|
|
|
|
DEBUG=false
|
|
|
|
TESTING=true
|
|
|
|
VERSION=dev
|
|
|
|
|
|
|
|
- name: Cache Docker Image
|
|
|
|
uses: actions/cache@v3
|
|
|
|
with:
|
2023-10-27 05:24:14 +13:00
|
|
|
key: ${{ env.CACHE_KEY }}
|
2023-10-27 05:15:52 +13:00
|
|
|
path: /tmp/${{ env.IMAGE }}.tar
|
2023-09-09 06:49:02 +12:00
|
|
|
|
2023-09-09 12:00:06 +12:00
|
|
|
unit_test:
|
|
|
|
name: Unit Test
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
needs: setup
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: checkout
|
|
|
|
uses: actions/checkout@v2
|
2023-10-27 05:15:52 +13:00
|
|
|
|
2023-09-09 12:00:06 +12:00
|
|
|
- name: Load Cache
|
|
|
|
uses: actions/cache@v3
|
|
|
|
with:
|
2023-10-27 05:24:14 +13:00
|
|
|
key: ${{ env.CACHE_KEY }}
|
2023-09-09 13:29:56 +12:00
|
|
|
path: /tmp/${{ env.IMAGE }}.tar
|
2023-09-09 12:00:06 +12:00
|
|
|
fail-on-cache-miss: true
|
2023-10-27 05:15:52 +13:00
|
|
|
|
2023-09-09 12:00:06 +12:00
|
|
|
- name: Load and Start Appwrite
|
2023-10-27 05:15:52 +13:00
|
|
|
run: |
|
2023-09-09 13:29:56 +12:00
|
|
|
docker load --input /tmp/${{ env.IMAGE }}.tar
|
2023-09-09 12:00:06 +12:00
|
|
|
docker compose up -d
|
|
|
|
sleep 10
|
2023-09-09 11:12:11 +12:00
|
|
|
|
2023-09-09 12:00:06 +12:00
|
|
|
- name: Doctor
|
|
|
|
run: docker compose exec -T appwrite doctor
|
2023-09-09 11:12:11 +12:00
|
|
|
|
2023-09-09 12:00:06 +12:00
|
|
|
- name: Environment Variables
|
2023-10-27 05:15:52 +13:00
|
|
|
run: docker compose exec -T appwrite vars
|
2023-09-09 11:12:11 +12:00
|
|
|
|
2023-09-09 12:00:06 +12:00
|
|
|
- name: Run Unit Tests
|
2023-10-27 05:15:52 +13:00
|
|
|
run: docker compose exec appwrite test /usr/src/code/tests/unit
|
2023-09-09 11:12:11 +12:00
|
|
|
|
2024-01-04 08:48:31 +13:00
|
|
|
e2e_general_test:
|
|
|
|
name: E2E General Test
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
needs: setup
|
|
|
|
steps:
|
|
|
|
- name: checkout
|
|
|
|
uses: actions/checkout@v3
|
|
|
|
|
|
|
|
- name: Load Cache
|
|
|
|
uses: actions/cache@v3
|
|
|
|
with:
|
|
|
|
key: ${{ env.CACHE_KEY }}
|
|
|
|
path: /tmp/${{ env.IMAGE }}.tar
|
|
|
|
fail-on-cache-miss: true
|
|
|
|
|
|
|
|
- name: Load and Start Appwrite
|
|
|
|
run: |
|
|
|
|
docker load --input /tmp/${{ env.IMAGE }}.tar
|
|
|
|
docker compose up -d
|
|
|
|
sleep 10
|
|
|
|
|
|
|
|
- name: Run General Tests
|
|
|
|
run: docker compose exec -T appwrite test /usr/src/code/tests/e2e/General --debug
|
|
|
|
|
|
|
|
e2e_service_test:
|
|
|
|
name: E2E Service Test
|
2023-09-09 12:11:14 +12:00
|
|
|
runs-on: ubuntu-latest
|
|
|
|
needs: setup
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
2023-10-27 05:26:13 +13:00
|
|
|
service:
|
2023-10-27 05:15:52 +13:00
|
|
|
[
|
|
|
|
Account,
|
|
|
|
Avatars,
|
|
|
|
Console,
|
|
|
|
Databases,
|
|
|
|
Functions,
|
|
|
|
GraphQL,
|
|
|
|
Health,
|
|
|
|
Locale,
|
|
|
|
Projects,
|
|
|
|
Realtime,
|
|
|
|
Storage,
|
|
|
|
Teams,
|
|
|
|
Users,
|
|
|
|
Webhooks,
|
2023-10-28 03:08:33 +13:00
|
|
|
VCS,
|
2023-11-16 18:50:39 +13:00
|
|
|
Messaging,
|
2023-10-27 05:15:52 +13:00
|
|
|
]
|
2023-09-09 12:11:14 +12:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: checkout
|
2023-10-27 05:24:14 +13:00
|
|
|
uses: actions/checkout@v3
|
2023-09-09 12:11:14 +12:00
|
|
|
|
|
|
|
- name: Load Cache
|
|
|
|
uses: actions/cache@v3
|
|
|
|
with:
|
2023-10-27 05:24:14 +13:00
|
|
|
key: ${{ env.CACHE_KEY }}
|
2023-09-09 13:29:56 +12:00
|
|
|
path: /tmp/${{ env.IMAGE }}.tar
|
2023-09-09 12:11:14 +12:00
|
|
|
fail-on-cache-miss: true
|
|
|
|
|
|
|
|
- name: Load and Start Appwrite
|
2023-10-27 05:15:52 +13:00
|
|
|
run: |
|
2023-09-09 13:29:56 +12:00
|
|
|
docker load --input /tmp/${{ env.IMAGE }}.tar
|
2023-09-09 12:11:14 +12:00
|
|
|
docker compose up -d
|
2023-09-09 13:58:37 +12:00
|
|
|
sleep 10
|
2023-10-27 05:15:52 +13:00
|
|
|
|
2023-10-27 05:26:13 +13:00
|
|
|
- name: Run ${{matrix.service}} Tests
|
2024-01-04 08:48:31 +13:00
|
|
|
run: docker compose exec -T appwrite test /usr/src/code/tests/e2e/Services/${{matrix.service}} --debug
|