name: CI on: push: branches: - "**" pull_request: permissions: contents: read jobs: validate: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: 22 cache: npm - name: Set up Java uses: actions/setup-java@v4 with: distribution: temurin java-version: 17 cache: gradle cache-dependency-path: plugins/velocity/*.gradle.kts - name: Install dependencies run: npm ci - name: Validate conventional commits if: github.event_name == 'pull_request' run: | npx -y \ -p @commitlint/cli@19 \ -p @commitlint/config-conventional@19 \ commitlint --from "${{ github.event.pull_request.base.sha }}" --to "${{ github.sha }}" \ --extends @commitlint/config-conventional - name: Validate OKF design run: npm run design:validate - name: Lint run: npm run lint - name: Typecheck run: npm run typecheck - name: Test run: npm test - name: Build applications run: npm run build - name: Build and test Velocity plugin run: ./gradlew clean test shadowJar working-directory: plugins/velocity - name: Upload development Velocity JAR uses: actions/upload-artifact@v3 with: name: minecraft-account-manager-velocity-${{ github.sha }} path: plugins/velocity/build/libs/*.jar if-no-files-found: error