name: CI on: workflow_dispatch: push: branches: [main, master] pull_request: branches: [main, master] jobs: lint: name: Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Lua uses: leafo/gh-actions-lua@v12 - name: Setup LuaRocks uses: leafo/gh-actions-luarocks@v6 - name: Install luacheck run: luarocks install luacheck - name: Luacheck devices-api run: luacheck devices-api --codes continue-on-error: true - name: Luacheck devices-worker run: luacheck devices-worker --codes continue-on-error: true - name: Setup Deno uses: denoland/setup-deno@v2 with: deno-version: v2 - name: Deno lint frontend run: cd frontend && deno check continue-on-error: true build: name: Build runs-on: ubuntu-latest needs: lint steps: - uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build API image uses: docker/build-push-action@v6 with: context: ./devices-api push: false load: true tags: handheld-devices-api:${{ github.sha }} - name: Build worker image uses: docker/build-push-action@v6 with: context: ./devices-worker push: false load: true tags: handheld-devices-worker:${{ github.sha }} - name: Build frontend image uses: docker/build-push-action@v6 with: context: ./frontend push: false load: true tags: handheld-devices-frontend:${{ github.sha }} test: name: Test runs-on: ubuntu-latest needs: lint steps: - uses: actions/checkout@v4 - name: Setup Lua uses: leafo/gh-actions-lua@v12 - name: Setup LuaRocks uses: leafo/gh-actions-luarocks@v6 - name: Install test dependencies run: | luarocks install busted luarocks install lua-cjson luarocks install luasocket luarocks install pgmoon - name: Run unit tests run: make test helm-lint: name: Helm Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Helm uses: azure/setup-helm@v4 with: version: "v3.14.0" - name: Helm lint run: helm lint k8s/handheld-devices