[cli_config] Add coverage (#42)

diff --git a/.github/workflows/cli_config.yml b/.github/workflows/cli_config.yml
index 3b06f22..d13cc98 100644
--- a/.github/workflows/cli_config.yml
+++ b/.github/workflows/cli_config.yml
@@ -42,3 +42,16 @@
 
       - run: dart test
         if: ${{matrix.run-tests}}
+
+      - name: Install coverage
+        run: dart pub global activate coverage
+        if: ${{ matrix.sdk == 'stable' }}
+      - name: Collect coverage
+        run: dart pub global run coverage:test_with_coverage
+        if: ${{ matrix.sdk == 'stable' }}
+      - name: Upload coverage
+        uses: coverallsapp/github-action@50c33ad324a9902697adbf2f92c22cf5023eacf1
+        with:
+          github-token: ${{ secrets.GITHUB_TOKEN }}
+          path-to-lcov: ./pkgs/cli_config/coverage/lcov.info
+        if: ${{ matrix.sdk == 'stable' }}
diff --git a/pkgs/cli_config/.gitignore b/pkgs/cli_config/.gitignore
index 3cceda5..58e48f3 100644
--- a/pkgs/cli_config/.gitignore
+++ b/pkgs/cli_config/.gitignore
@@ -5,3 +5,5 @@
 # Avoid committing pubspec.lock for library packages; see
 # https://dart.dev/guides/libraries/private-files#pubspeclock.
 pubspec.lock
+
+coverage/
diff --git a/pkgs/cli_config/README.md b/pkgs/cli_config/README.md
index d758615..5885160 100644
--- a/pkgs/cli_config/README.md
+++ b/pkgs/cli_config/README.md
@@ -1,5 +1,6 @@
 [![package:cli_config](https://github.com/dart-lang/tools/actions/workflows/cli_config.yml/badge.svg)](https://github.com/dart-lang/tools/actions/workflows/cli_config.yml)
 [![pub package](https://img.shields.io/pub/v/cli_config.svg)](https://pub.dev/packages/cli_config)
+[![Coverage Status](https://coveralls.io/repos/github/dart-lang/tools/badge.svg?branch=main)](https://coveralls.io/github/dart-lang/tools?branch=main)
 <!-- [![package publisher](https://img.shields.io/pub/publisher/cli_config.svg)](https://pub.dev/packages/cli_config/publisher) -->
 
 A library to take config values from configuration files, CLI arguments, and environment variables.
diff --git a/pkgs/cli_config/lib/cli_config.dart b/pkgs/cli_config/lib/cli_config.dart
index 66d4e47..23a8598 100644
--- a/pkgs/cli_config/lib/cli_config.dart
+++ b/pkgs/cli_config/lib/cli_config.dart
@@ -5,3 +5,5 @@
 /// A library to take config values from configuration files, CLI arguments,
 /// and environment variables.
 library cli_config;
+
+export 'src/cli_config.dart';
diff --git a/pkgs/cli_config/lib/src/cli_config.dart b/pkgs/cli_config/lib/src/cli_config.dart
new file mode 100644
index 0000000..4e9351f
--- /dev/null
+++ b/pkgs/cli_config/lib/src/cli_config.dart
@@ -0,0 +1,5 @@
+// Copyright (c) 2023, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+int add(int a, int b) => a + b;
diff --git a/pkgs/cli_config/test/cli_config_test.dart b/pkgs/cli_config/test/cli_config_test.dart
index 547ac88..c1967a0 100644
--- a/pkgs/cli_config/test/cli_config_test.dart
+++ b/pkgs/cli_config/test/cli_config_test.dart
@@ -2,10 +2,11 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'package:cli_config/cli_config.dart';
 import 'package:test/test.dart';
 
 void main() {
   test('dummy test', () {
-    expect(42, 42);
+    expect(add(21, 21), 42);
   });
 }