name: MacawUI migration on: [pull_request] jobs: current_state: runs-on: ubuntu-latest name: "Calculate current state" outputs: main_statistics: ${{ steps.store_import_stats.outputs.MAIN_STATISTICS }} steps: - uses: actions/checkout@v3 with: ref: "main" - uses: actions/setup-node@v3 with: node-version-file: '.nvmrc' - name: Install deps run: | npm ci - name: Store import stats id: store_import_stats run: | stats=$(npx depcruise --config .dependency-cruiser.js src --output-type json | jq ".summary.info") echo "Statistics on main branch: ${stats}" echo "MAIN_STATISTICS=${stats}" >> $GITHUB_OUTPUT check_migation_status: runs-on: ubuntu-latest name: "Migration check" needs: current_state steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version-file: '.nvmrc' - name: Install deps run: | npm ci - name: "Calculate stats" env: latest: ${{ needs.current_state.outputs.main_statistics }} run: | current=$(npx depcruise --config .dependency-cruiser.js src --output-type json | jq ".summary.info") difference=$(( $current - $latest )) echo "Imports in main: ${latest}" echo "Incomming imports: ${current}" echo "Difference: ${difference}" echo "IMPORT_DIFFERENCE=${difference}" >> $GITHUB_ENV - name: "MacawUI regression reported" if: ${{ env.IMPORT_DIFFERENCE > 0 }} run: | echo "Regression detected: +${{ env.IMPORT_DIFFERENCE }} imports" exit 1 - name: "MacawUI migration progress" if: ${{ env.IMPORT_DIFFERENCE <= 0 }} run: | echo "Progress by: ${{ env.IMPORT_DIFFERENCE }} imports" exit 0