Boilerplate

Setup Swift package.
This commit is contained in:
Helge Heß 2021-01-19 00:29:40 +01:00
commit 6eae5d3155
12 changed files with 232 additions and 0 deletions

45
.github/workflows/swift.yml vendored Normal file
View File

@ -0,0 +1,45 @@
name: Build and Test
on:
push:
pull_request:
schedule:
- cron: "0 9 * * 5"
jobs:
linux:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
image:
- swift:5.0.3-xenial
- swift:5.1.5-xenial
- swift:5.2.5-xenial
- swift:5.3.2-xenial
- swift:5.3.2-bionic
container: ${{ matrix.image }}
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Build Swift Debug Package
run: swift build -c debug
- name: Build Swift Release Package
run: swift build -c release
- name: Run Tests
run: swift test
nextstep:
runs-on: macos-latest
steps:
- name: Select latest available Xcode
uses: maxim-lobanov/setup-xcode@v1.2.1
with:
xcode-version: 12.2
- name: Checkout Repository
uses: actions/checkout@v2
- name: Build Swift Debug Package
run: swift build -c debug
- name: Build Swift Release Package
run: swift build -c release
- name: Run Tests
run: swift test

97
.gitignore vendored Normal file
View File

@ -0,0 +1,97 @@
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
## User settings
xcuserdata/
## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
*.xcscmblueprint
*.xccheckout
## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
build/
DerivedData/
*.moved-aside
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
## Obj-C/Swift specific
*.hmap
## App packaging
*.ipa
*.dSYM.zip
*.dSYM
## Playgrounds
timeline.xctimeline
playground.xcworkspace
# Swift Package Manager
#
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
# Packages/
# Package.pins
# Package.resolved
# *.xcodeproj
#
# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
# hence it is not needed unless you have added a package configuration file to your project
# .swiftpm
.build/
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/
#
# Add this line if you want to avoid checking in source code from the Xcode workspace
# *.xcworkspace
# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts
Carthage/Build/
# Accio dependency management
Dependencies/
.accio/
# fastlane
#
# It is recommended to not store the screenshots in the git repo.
# Instead, use fastlane to re-generate the screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/#source-control
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots/**/*.png
fastlane/test_output
# Code Injection
#
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode
iOSInjectionProject/
# hh
Package.resolved
xcuserdata
.docker.build
.swiftpm

19
Package.swift Normal file
View File

@ -0,0 +1,19 @@
// swift-tools-version:5.0
import PackageDescription
let package = Package(
name: "wren-swift",
products: [
.library(name: "CWren", targets: [ "Wren" ]),
.library(name: "Wren", targets: [ "Wren" ])
],
targets: [
.target(name: "CWren", exclude: [ "AUTHORS", "LICENSE" ]),
.target(name: "Wren", dependencies: [ "Cwren" ]),
.testTarget(name: "CWrenTests", dependencies: ["Cwren"]),
.testTarget(name: "WrenTests", dependencies: ["Wren"])
]
)

17
README.md Normal file
View File

@ -0,0 +1,17 @@
# swift-wren
A Swift package and wrapper for the [wren](https://wren.io) scripting language.
### Who
**swift-wren** is brought to you by
the
[Always Right Institute](https://www.alwaysrightinstitute.com)
and
[ZeeZide](http://zeezide.de).
We like
[feedback](https://twitter.com/ar_institute),
GitHub stars,
cool [contract work](http://zeezide.com/en/services/services.html),
presumably any form of praise you can think of.

View File

0
Sources/CWren/wren.c Normal file
View File

0
Sources/Wren/Wren.swift Normal file
View File

View File

@ -0,0 +1,12 @@
import XCTest
@testable import CWren
final class CWrenTests: XCTestCase {
func testCImport() {
}
static var allTests = [
("testCImport", testCImport)
]
}

View File

@ -0,0 +1,9 @@
import XCTest
#if !canImport(ObjectiveC)
public func allTests() -> [XCTestCaseEntry] {
return [
testCase(CWrenTests.allTests)
]
}
#endif

9
Tests/LinuxMain.swift Normal file
View File

@ -0,0 +1,9 @@
import XCTest
import CWrenTests
import WrenTests
var tests = [ XCTestCaseEntry ]()
tests += CWrenTests.allTests()
tests += WrenTests .allTests()
XCTMain(tests)

View File

@ -0,0 +1,15 @@
import XCTest
@testable import wren_swift
final class wren_swiftTests: XCTestCase {
func testExample() {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct
// results.
XCTAssertEqual(wren_swift().text, "Hello, World!")
}
static var allTests = [
("testExample", testExample),
]
}

View File

@ -0,0 +1,9 @@
import XCTest
#if !canImport(ObjectiveC)
public func allTests() -> [XCTestCaseEntry] {
return [
testCase(WrenTests.allTests)
]
}
#endif