Skip to content

Commit

Permalink
Modernize devcontainer (#17)
Browse files Browse the repository at this point in the history
  • Loading branch information
GeorgeLyon authored Mar 3, 2024
1 parent 6f9377f commit 0629188
Show file tree
Hide file tree
Showing 15 changed files with 127 additions and 141 deletions.
1 change: 0 additions & 1 deletion .devcontainer

This file was deleted.

18 changes: 18 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
FROM swift:5.9-jammy
# FROM swiftlang/swift:nightly-main-focal

# Install test dependencies
RUN DEBIAN_FRONTEND=noninteractive \
apt-get update && \
apt-get install -y \
xxd

# Install swift-format
RUN \
git clone https://github.com/apple/swift-format.git -b 509.0.0 /opt/swift-format && \
cd /opt/swift-format && \
# Build debug since release takes forever to build and there isn't a meaningful runtime performance delta
swift build -c debug && \
cp .build/debug/swift-format /usr/bin/swift-format && \
rm -rf /opt/swift-format

37 changes: 37 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"name": "Shwift",
"dockerFile": "Dockerfile",

"capAdd": [
"SYS_PTRACE"
],
"securityOpt": [
"seccomp=unconfined"
],

"mounts": [
// Use a named volume for the build products for optimal performance (https://code.visualstudio.com/remote/advancedcontainers/improve-performance?WT.mc_id=javascript-14373-yolasors#_use-a-targeted-named-volume)
"source=${localWorkspaceFolderBasename}-build,target=${containerWorkspaceFolder}/build,type=volume"
],
"remoteEnv": {
// Useful for disambiguating devcontainers
"LOCAL_WORKSPACE_FOLDER": "${localWorkspaceFolder}"
},

"customizations": {
"vscode": {
"settings": {
"lldb.library": "/usr/lib/liblldb.so",
"lldb.launch.expressions": "native",

"[swift]": {
"editor.defaultFormatter": "vknabel.vscode-apple-swift-format"
},
},
"extensions": [
"sswg.swift-lang",
"vknabel.vscode-apple-swift-format",
],
}
},
}
52 changes: 0 additions & 52 deletions .github/workflows/buildAndTest.yml

This file was deleted.

71 changes: 71 additions & 0 deletions .github/workflows/checkCommit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Check Commit

on:
push:
branches:
- main
pull_request: {}

jobs:
validate-formatting:
name: Validate Formatting
runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v2
- name: Initialize devcontainer
uses: devcontainers/[email protected]
with:
push: never
runCmd: |
git status
echo "Devcontainer Initialized."
- name: Validate swift formatting
uses: devcontainers/[email protected]
with:
push: never
runCmd: |
swift-format \
--in-place \
--recursive Sources Tests
git config --global --add safe.directory /workspaces/Shwift
git diff
git diff-index --quiet HEAD --
test-macos:
name: Run Tests on macOS
strategy:
fail-fast: false
runs-on: macos-13
steps:
- uses: actions/checkout@v2
- name: Install Correct Swift Version
uses: compnerd/gha-setup-swift@main
with:
branch: swift-5.9-release
tag: 5.9-RELEASE
- run: swift build
- run: swift test
- run: swift run ScriptExample

test-devcontainer:
name: Run Tests in devcontainer
strategy:
fail-fast: false
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
- name: Initialize devcontainer
uses: devcontainers/[email protected]
with:
push: never
runCmd: |
echo "Devcontainer Initialized."
- name: Test Shwift
uses: devcontainers/[email protected]
with:
push: never
runCmd: |
swift build
swift test
swift run ScriptExample
4 changes: 1 addition & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,4 @@
/Packages
/*.xcodeproj
xcuserdata/
DerivedData/
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
.swiftpm
.vscode
1 change: 0 additions & 1 deletion .vscode

This file was deleted.

27 changes: 0 additions & 27 deletions Package.resolved
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,6 @@
"version": "1.1.4"
}
},
{
"package": "swift-format",
"repositoryURL": "https://github.com/apple/swift-format",
"state": {
"branch": "release/5.8",
"revision": "fbfe1869527923dd9f9b2edac148baccfce0dce7",
"version": null
}
},
{
"package": "swift-nio",
"repositoryURL": "https://github.com/apple/swift-nio.git",
Expand All @@ -28,15 +19,6 @@
"version": "2.40.0"
}
},
{
"package": "SwiftSyntax",
"repositoryURL": "https://github.com/apple/swift-syntax",
"state": {
"branch": null,
"revision": "2c49d66d34dfd6f8130afdba889de77504b58ec0",
"version": "508.0.1"
}
},
{
"package": "swift-system",
"repositoryURL": "https://github.com/apple/swift-system",
Expand All @@ -45,15 +27,6 @@
"revision": "836bc4557b74fe6d2660218d56e3ce96aff76574",
"version": "1.1.1"
}
},
{
"package": "swift-tools-support-core",
"repositoryURL": "https://github.com/apple/swift-tools-support-core.git",
"state": {
"branch": null,
"revision": "93784c59434dbca8e8a9e4b700d0d6d94551da6a",
"version": "0.5.2"
}
}
]
},
Expand Down
1 change: 0 additions & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ let package = Package(
.library(name: "Shwift", targets: ["Shwift"]),
],
dependencies: [
.package(url: "https://github.com/apple/swift-format", .branch("release/5.8")),
.package(url: "https://github.com/apple/swift-argument-parser", from: "1.0.0"),
.package(url: "https://github.com/apple/swift-system", from: "1.1.1"),
.package(url: "https://github.com/apple/swift-nio.git", from: "2.0.0"),
Expand Down
6 changes: 0 additions & 6 deletions Support/Docker/Dockerfile

This file was deleted.

21 changes: 0 additions & 21 deletions Support/Docker/devcontainer.json

This file was deleted.

1 change: 0 additions & 1 deletion Support/GitHub Workflows

This file was deleted.

1 change: 0 additions & 1 deletion Support/VSCode/.gitignore

This file was deleted.

9 changes: 0 additions & 9 deletions Support/VSCode/settings.json

This file was deleted.

18 changes: 0 additions & 18 deletions Support/VSCode/tasks.json

This file was deleted.

0 comments on commit 0629188

Please sign in to comment.