name: Integration Tests
on:
  pull_request:
    branches:
      - master
    paths-ignore:
    - '**.md'
    - 'Makefile'
    - 'config.json'

jobs:
  glib_malloc:
    name: Glib malloc RAM usage test
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Build image
        uses: docker/build-push-action@v3
        with:
          context: .
          platforms: linux/amd64
          push: false
          tags: ghcr.io/webp-sh/webp_server_go

      - name: Start the container
        run: |
          cp malloc_tests/glib_malloc/docker-compose.yml ./
          docker-compose up -d
    
      - name: Send Requests to Server
        run: |
          cd pics
          find * -type f -print | xargs -I {} curl -o /dev/null -H "Accept: image/webp" http://localhost:3333/{}

      - name: Get container RAM stats
        run: |
          docker stats --no-stream

  jemalloc:
    name: jemalloc RAM usage test
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Build image
        uses: docker/build-push-action@v3
        with:
          context: .
          platforms: linux/amd64
          push: false
          tags: ghcr.io/webp-sh/webp_server_go

      - name: Start the container
        run: |
          cp malloc_tests/jemalloc/docker-compose.yml ./
          docker-compose up -d
    
      - name: Send Requests to Server
        run: |
          cd pics
          find * -type f -print | xargs -I {} curl -o /dev/null -H "Accept: image/webp" http://localhost:3333/{}

      - name: Get container RAM stats
        run: |
          docker stats --no-stream
