name: "Tests" concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: TAG: appwrite-dev on: [pull_request] jobs: setup: name: Setup & Build Appwrite Image runs-on: ubuntu-latest steps: - 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 # Fetch submodules submodules: recursive # 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' }} # This is a separate action that sets up buildx runner - 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: TAG load: true cache-from: type=gha cache-to: type=gha,mode=max outputs: type=docker,dest=/tmp/$TAG.tar build-args: | DEBUG=false TESTING=true VERSION=dev - name: Upload Docker Image uses: actions/upload-artifact@v3 with: name: $TAG path: /tmp/$TAG.tar # - name: Start Appwrite # run: | # docker compose up -d # sleep 30 # - name: Doctor # run: docker compose exec -T appwrite doctor # - name: Environment Variables # run: docker compose exec -T appwrite vars # - name: Run Unit Tests # run: docker compose exec appwrite test /usr/src/code/tests/unit unit_test: name: Unit Test runs-on: ubuntu-latest needs: setup steps: - name: checkout uses: actions/checkout@v2 with: fetch-depth: 1 submodules: recursive - name: Download artifact uses: actions/download-artifact@v3 with: name: $TAG path: /tmp - name: Load Docker image run: | docker load --input /tmp/$TAG.tar docker image ls -a # e2e_test: # name: E2E Test # runs-on: ubuntu-latest # needs: build # strategy: # fail-fast: false # matrix: # services: [Account,Avatars,Console,Databases,Functions,GraphQL,Health,Locale,Projects,Realtime,Storage,Teams,Users,Webhooks] # steps: # - name: checkout # uses: actions/checkout@v2 # with: # fetch-depth: 2 # submodules: recursive # - name: Start Appwrite # run: | # docker compose up -d # sleep 30 # - name: Run ${{matrix.services}} Tests # run: docker compose exec -T appwrite test /usr/src/code/tests/e2e/Services/${{matrix.services}} --debug