name: CI
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        arango-image: ['arangodb:3.11', 'arangodb:3.12', 'arangodb:3.12.6']
        node-version: [18.x, 20.x, 22.x]
    steps:
      - uses: actions/checkout@v2
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node-version }}
      - run:
          docker run --name arangodb -p 127.0.0.1:8529:8529 -d -e ARANGO_NO_AUTH=1 -e LANG=en_US ${{
          matrix.arango-image }}
      - run: timeout 10 docker logs --follow arangodb || true # wait until arangodb is started
      - run: curl -L http://localhost:8529/_api/version
      - run: npm ci
      - run: npm test
  deploy:
    if: startsWith(github.ref, 'refs/tags/v')
    runs-on: ubuntu-latest
    needs: test
    permissions:
      id-token: write
      contents: read
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 24
          registry-url: https://registry.npmjs.org/
      - run: npm ci
      - run: npm publish --tag next
        env:
          NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
