-
Notifications
You must be signed in to change notification settings - Fork 7
65 lines (61 loc) · 2.02 KB
/
test.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
name: Tests
on:
push:
branches:
- main
pull_request:
env:
XCODE_VERSION: '15.0'
defaults:
run:
working-directory: ./SwiftLintPluginsTest
jobs:
plugin:
name: Test Plugins
runs-on: macos-13
steps:
- name: Select Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{ env.XCODE_VERSION }}
- name: Checkout SwiftLintPlugins
uses: actions/checkout@v4
with:
path: SwiftLintPlugins
- name: Create project directory
run: mkdir SwiftLintPluginsTest
working-directory: .
- name: Configure project
run: |
swift package init --type executable
cp ../SwiftLintPlugins/.github/workflows/Package.swift .
echo "let myVar = 0 as! Int" > Sources/main.swift
echo "included: [Sources]" > .swiftlint.yml
- name: Let build fail
id: failed_build
run: swift build
continue-on-error: true
- name: Verify that build failed
if: ${{ steps.failed_build.outcome != 'failure' }}
run: exit 1
- name: Let command fail
id: failed_command
run: swift package swiftlint
continue-on-error: true
- name: Verify that command failed
if: ${{ steps.failed_command.outcome != 'failure' }}
run: exit 1
- name: Let Xcode build fail
id: failed_xcode_build
run: xcodebuild -scheme SwiftLintPluginsTest -destination 'platform=macOS' -skipPackagePluginValidation build
continue-on-error: true
- name: Verify that Xcode build failed
if: ${{ steps.failed_xcode_build.outcome != 'failure' }}
run: exit 1
- name: Change to warning
run: |
echo "force_cast: warning" > .swiftlint.yml
- name: Check that all commands pass
run: |
swift package swiftlint | grep -q "Force Cast Violation"
xcodebuild -scheme SwiftLintPluginsTest -destination 'platform=macOS' -skipPackagePluginValidation build | grep -q "Force Cast Violation"