name: ci

on:
  push:
    paths:
      - '**.lua'
    tags:
      - '[0-9]+.[0-9]+.[0-9]+'
  pull_request:

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Lint
        uses: nebularg/actions-luacheck@v1
        with:
          annotate: warning
          args: --no-color
  test:
    runs-on: ubuntu-latest
    needs: lint
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          submodules: true
      - name: Install Lua
        uses: leafo/gh-actions-lua@v9
        with:
          luaVersion: '5.1'
      - name: Install LuaRocks
        uses: leafo/gh-actions-luarocks@v4
      - name: Install Dependencies
        run: |
          luarocks install luaunit
          luarocks install mockagne
          luarocks install luabitop
      - name: Test
        run: |
          cd ./tests
          lua core.lua
          lua databases.lua
  release:
    runs-on: ubuntu-latest
    needs: test
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: Prepare Packager Arguments
        id: packager-args
        if: github.base_ref || github.ref_type != 'tag'
        run: echo '::set-output name=args::-d'
      - name: Package and Release
        uses: BigWigsMods/packager@v2
        with:
          args: ${{ steps.packager-args.outputs.args }}
        env:
          CF_API_KEY: ${{ secrets.CF_API_KEY }}
          GITHUB_OAUTH: ${{ secrets.GITHUB_TOKEN }}