diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..0594281
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,34 @@
+name: CI
+
+on:
+ push:
+ pull_request:
+ workflow_dispatch:
+
+jobs:
+ mac:
+ name: macOS
+ runs-on: macos-12
+ strategy:
+ matrix:
+ xcode: ['13.3', '14.2']
+ config: ['debug', 'release']
+ steps:
+ - uses: actions/checkout@v3
+ - name: Select Xcode ${{ matrix.xcode }}
+ run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
+ - name: Swift Version
+ run: swift --version
+ - name: Run ${{ matrix.xcode }} Tests
+ run: make CONFIG=${{ matrix.config }} test-library
+
+ ubuntu:
+ name: Ubuntu
+ runs-on: ubuntu-20.04
+ steps:
+ - uses: swift-actions/setup-swift@v1
+ with:
+ swift-version: 5.7
+ - uses: actions/checkout@v3
+ - name: Run Tests
+ run: make DOCKER_PLATFORM=linux/amd64 test-linux
diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml
new file mode 100644
index 0000000..9e91f91
--- /dev/null
+++ b/.github/workflows/documentation.yml
@@ -0,0 +1,41 @@
+# Build and deploy DocC to GitHub pages. Based off of @karwa's work here:
+# https://github.com/karwa/swift-urlblob/main/.github/workflows/docs.yml
+name: Documentation
+
+on:
+ release:
+ types:
+ - published
+ push:
+ branches:
+ - main
+ workflow_dispatch:
+
+concurrency:
+ group: docs-${{ github.ref }}
+ cancel-in-progress: true
+
+# Sets permissions to allow deployment to Github Pages
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+jobs:
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: macos-12
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Build DocC
+ run: make build-documentation
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v1
+ with:
+ path: 'docs'
+ - name: Deploy to Github Pages
+ id: deployment
+ uses: actions/deploy-pages@v1
diff --git a/GitVersion.xcworkspace/contents.xcworkspacedata b/GitVersion.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index ca3329e..0000000
--- a/GitVersion.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/GitVersion.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/GitVersion.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d9810..0000000
--- a/GitVersion.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/GitVersion.xcworkspace/xcshareddata/swiftpm/Package.resolved b/GitVersion.xcworkspace/xcshareddata/swiftpm/Package.resolved
deleted file mode 100644
index 2d20565..0000000
--- a/GitVersion.xcworkspace/xcshareddata/swiftpm/Package.resolved
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "pins" : [
- {
- "identity" : "combine-schedulers",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/pointfreeco/combine-schedulers",
- "state" : {
- "revision" : "882ac01eb7ef9e36d4467eb4b1151e74fcef85ab",
- "version" : "0.9.1"
- }
- },
- {
- "identity" : "rainbow",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/onevcat/Rainbow",
- "state" : {
- "revision" : "e0dada9cd44e3fa7ec3b867e49a8ddbf543e3df3",
- "version" : "4.0.1"
- }
- },
- {
- "identity" : "swift-argument-parser",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-argument-parser.git",
- "state" : {
- "revision" : "fee6933f37fde9a5e12a1e4aeaa93fe60116ff2a",
- "version" : "1.2.2"
- }
- },
- {
- "identity" : "swift-clocks",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/pointfreeco/swift-clocks",
- "state" : {
- "revision" : "20b25ca0dd88ebfb9111ec937814ddc5a8880172",
- "version" : "0.2.0"
- }
- },
- {
- "identity" : "swift-dependencies",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/pointfreeco/swift-dependencies.git",
- "state" : {
- "revision" : "6bb1034e8a1bfbf46dfb766b6c09b7b17e1cba10",
- "version" : "0.2.0"
- }
- },
- {
- "identity" : "swift-docc-plugin",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-docc-plugin.git",
- "state" : {
- "revision" : "10bc670db657d11bdd561e07de30a9041311b2b1",
- "version" : "1.1.0"
- }
- },
- {
- "identity" : "swift-docc-symbolkit",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-docc-symbolkit",
- "state" : {
- "revision" : "b45d1f2ed151d057b54504d653e0da5552844e34",
- "version" : "1.0.0"
- }
- },
- {
- "identity" : "swift-log",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-log.git",
- "state" : {
- "revision" : "32e8d724467f8fe623624570367e3d50c5638e46",
- "version" : "1.5.2"
- }
- },
- {
- "identity" : "swift-log-format-and-pipe",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/adorkable/swift-log-format-and-pipe.git",
- "state" : {
- "revision" : "bd29badb9e6b18122ec10b84eed534db83cad279",
- "version" : "0.1.1"
- }
- },
- {
- "identity" : "swift-shell-client",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/m-housh/swift-shell-client.git",
- "state" : {
- "revision" : "28bcd2ecd0022aca20c520fc578a130bec7283e7",
- "version" : "0.1.0"
- }
- },
- {
- "identity" : "xctest-dynamic-overlay",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/pointfreeco/xctest-dynamic-overlay",
- "state" : {
- "revision" : "ab8c9f45843694dd16be4297e6d44c0634fd9913",
- "version" : "0.8.4"
- }
- }
- ],
- "version" : 2
-}
diff --git a/Makefile b/Makefile
index 7ec7157..741da24 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,5 @@
+PLATFORM_MACOS = macOS
+CONFIG := debug
DOCC_TARGET ?= CliVersion
DOCC_BASEPATH = $(shell basename "$(PWD)")
DOCC_DIR ?= ./docs
@@ -28,6 +30,15 @@ test-linux:
swift:5.7-focal \
swift test
+test-library:
+ for platform in "$(PLATFORM_MACOS)"; do \
+ xcodebuild test \
+ -configuration $(CONFIG) \
+ -workspace .swiftpm/xcode/package.xcworkspace \
+ -scheme swift-cli-version-Package \
+ -destination platform="$$platform" || exit 1; \
+ done;
+
update-version:
swift package \
--disable-sandbox \