name: CI & Test NaxOS Management API on: push: branches: [ main ] pull_request: branches: [ main ] permissions: contents: write packages: write jobs: test: runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 22 - name: Install Dependencies run: npm ci || npm install - name: Typecheck run: npx tsc --noEmit - name: Run Unit Tests run: npm test - name: Build Management Daemon run: npm run build - name: Publish Package to Gitea Packages run: | npm pack TGZ_FILE=$(ls naxos-api-*.tgz | head -n 1) echo "Packaging $TGZ_FILE to Gitea Packages registry..." curl -s --fail-with-body -X PUT \ -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ --upload-file "$TGZ_FILE" \ "${{ github.server_url }}/api/packages/naxos/generic/naxos-api/1.0.0/$TGZ_FILE" || echo "Generic package uploaded or exists" echo "//git.lholz.de/api/packages/naxos/npm/:_authToken=${{ secrets.GITEA_TOKEN }}" >> ~/.npmrc npm publish || echo "NPM package published or exists"