Boehrsi.de - Blog

Kotlin und Dart Code via GitHub Action formatieren

Erstellt am event Uhr von account_circle Boehrsi in label Development
Kotlin und Dart Code via GitHub Action formatieren Bild

Code, egal wie gut er logisch geschrieben ist, ist ohne eine ordentliche Formatierung problematisch. Man kann es vergleichen mit dem besten Buch aller Zeiten, welches aber quasi unlesbar ist, weil die Schriftgröße auf drei gesetzt wurde.
Bei den Programmiersprachen bin ich bekanntlich in den Bereichen Dart und Kotlin unterwegs und auch wenn normalerweise die IDE und die integrierten Tools das Formatting übernehmen, so gibt es doch Situation wo eine schnelle Formatierung via CLI hilfreich ist. Als konkretes Beispiel hätte ich hier die CI, welche z.B. Code generiert, optimiert oder vor dem Release von Libraries und Apps für Ordnung sorgt.

In einem meiner GitHub Repositories open_in_new bin ich darauf angewiesen sowohl Dart, wie auch Kotlin Code zu formatieren. Für Dart nutze ich dabei eine globale Installation des Dart SDKs und den darin enthaltenen dart format Befehl. Grund dafür ist, dass das Repository ohnehin Dart als Hauptsprache nutzt und die CI bzw. GitHub Action somit schon ein Setup für Dart beinhaltet.

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: dart-lang/setup-dart@v1
      - name: Format Dart
        run: dart format path/to/my_file.dart

Für den Kotlin Part wollte ich eine möglichst kleine und einfache Lösung ohne große Abhängigkeiten, welche leicht wartbar ist. Hier setze ich auf einen Einzeiler, welcher die ktlint Binary herunterlädt, sie ausführbar macht und direkt die gewünschte Datei formatiert.

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Format Kotlin
        run: curl -sSLO https://github.com/pinterest/ktlint/releases/download/0.46.1/ktlint && chmod a+x ktlint && ./ktlint -F path/to/my_file.kt

Auf diesem Weg und mit diesen kleinen Bausteinen erzeugt das genannte Repository Dart und Kotlin Code, welcher formatiert ist und direkt genutzt werden kann. Da ich die generierten Daten mindestens einmal im Monat selbst benötige, war diese Anforderung auch für mich persönlich durchaus relevant. Die komplette GitHub Action habe ich in den Related Links hinterlegt. Bei Fragen meldet euch gerne direkt in den Kommentaren.

Related Links
Kommentare  
Kommentar erstellen
Mit dem Abschicken des Kommentars erklären sie sich mit der in der Datenschutzerklärung dargelegten Datenerhebung für Kommentare einverstanden. Spam, unangebrachte Werbung und andere unerwünschte Inhalte werden entfernt. Das Abonnieren via E-Mail ist nur für E-Mail Adressen erlaubt die Sie rechtmäßig administrieren. Widerrechtliche Abonnements werden entfernt.