Swiftpack.co - Package - richardpiazza/XcodeServer

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.

richardpiazza/XcodeServer

A swift framework for interacting with, and persisting data from an "Xcode Server".

XcodeServer

A swift framework for interacting with, and persisting data from an "Xcode Server".

Twitter: @richardpiazza

Usage

XcodeServer is distributed using the Swift Package Manager. To install it into a project, add it as a dependency within your Package.swift manifest:

let package = Package(
    ...
    dependencies: [
        .package(url: "https://github.com/richardpiazza/XcodeServer.git", .upToNextMinor(from: "1.1.0")
    ],
    ...
)

Then import the XcodeServer packages wherever you'd like to use it:

import XcodeServer

Prerequisites

macOS, iOS, tvOS, watchOS

none

Linux (Ubuntu)

zlib1g-dev must be pre-installed. sudo apt-get install -y zlib1g-dev

Packages

XcodeServer

Core module that provides a unified model representing an Xcode Server and all related entities.

XcodeServerAPI

All of the DTO definitions for the Xcode Server API. The APIClient class provides endpoint definitions and utilities for downloading Integration coverage data & assets.

XcodeServerCoreData

A CoreData (on Apple platforms) driven implementation of primary Xcode Server entities and their relationships to one another.

XcodeServerProcedures

A operation-driven level that combines the api and persisted storage.

XcodeServerUtility

A Manager class that interacts with the procedures the query and persist data from the server API.

xcscli

The executable xcscli provides a command line interface to the Xcode Server API. To execute from the command line (without building a binary version), you can use the swift run command from the root directory. For instance:

$ swift run xcscli --help

References

Github

link
Stars: 6
Last commit: 14 hours ago

Releases

XcodeServer 2.0.0 😲 - 2020-12-03T00:13:35

This is a huge update to XcodeServer!

The design goal for this version was to make the individual packages more interchangeable & independently updatable through the use of a shared unified model. In earlier versions of the framework, the Core Data entity classes operated as the 'preferred' entity. Now each layer (api & core data) interchange through a shared model and a series of protocols. With the Queryable and Persistable protocols, now anyone can write their own persistence layer, removing the reliance on Core Data.

Key Features

  • Multi-Platform: The framework now compiles across all of the Apple platforms (macOS, iOS, tvOS, watchOS) as well as Linux, with full support for the API/Networking.
  • Command Line Interface: The swift package offers a simple executable for interacting with the Xcode Server API - as well as persistence testing tools on macOS.
  • Swift 5.3 Resources: Swift 5.3 added support for bundled resources. This means the Core Data model and test JSON files are all available where needed.
  • Model Migration: Progressive migration support has been added to the Core Data implementation. This means updates and fixes should be easier to implement without having to worry about what any existing database conforms to.