1
0
Fork 0
mirror of synced 2024-07-15 19:36:08 +12:00
appwrite/.github/workflows/tests.yml

122 lines
2.8 KiB
YAML
Raw Normal View History

name: "Tests"
2022-02-10 08:29: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
on: [pull_request]
2023-09-09 08:07:13 +12:00
jobs:
2023-09-09 07:03:55 +12:00
setup:
name: Setup & Build Appwrite Image
runs-on: ubuntu-latest
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
2023-09-09 12:11:14 +12:00
e2e_test:
name: E2E Test
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-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
run: docker compose exec -T appwrite test /usr/src/code/tests/e2e/Services/${{matrix.service}} --debug