name: CI & Build NaxOS Web Dashboard on: push: branches: [ main ] pull_request: branches: [ main ] permissions: contents: write packages: write jobs: build: 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: Build Dashboard SPA run: npm run build - name: Publish Package to Gitea Packages run: | tar -czf naxos-ui-dist.tar.gz -C dist . echo "Uploading naxos-ui-dist.tar.gz to Gitea Packages registry..." TOKEN="${{ secrets.PACKAGE_TOKEN }}" if [ -z "$TOKEN" ]; then TOKEN="${{ secrets.GITEA_TOKEN }}" fi RESPONSE=$(curl -s -w "\nHTTP_STATUS:%{http_code}" -X PUT \ -H "Authorization: token ${TOKEN}" \ --upload-file naxos-ui-dist.tar.gz \ "${{ github.server_url }}/api/packages/naxos/generic/naxos-ui/1.0.0/naxos-ui-dist.tar.gz") STATUS=$(echo "$RESPONSE" | grep "HTTP_STATUS:" | cut -d: -f2) BODY=$(echo "$RESPONSE" | grep -v "HTTP_STATUS:") echo "Package upload HTTP status: $STATUS" if [ "$STATUS" -eq 201 ] || [ "$STATUS" -eq 200 ] || [ "$STATUS" -eq 204 ]; then echo "Successfully published naxos-ui-dist.tar.gz to Gitea Packages!" elif [ "$STATUS" -eq 409 ]; then echo "Package version 1.0.0 already published in Gitea Packages: $BODY" else echo "Failed to publish package to Gitea Packages ($STATUS): $BODY" exit 1 fi - name: Upload UI Assets Artifact uses: actions/upload-artifact@v3 with: name: naxos-ui-dist path: dist/