Have a separate workflow for test with correct file paths

This commit is contained in:
Salar Rahmanian 2025-02-08 20:14:50 -08:00
parent b3ab1e325f
commit 477af99eab
4 changed files with 39 additions and 41 deletions

View file

@ -1,36 +1,12 @@
name: Build and Test name: Build and Release Artifacts
on: on:
push:
branches:
- main
pull_request:
branches:
- main
release: release:
types: [created] types: [published]
jobs: jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Swift
uses: swift-actions/setup-swift@v2
with:
swift-version: '6.0'
- name: Get swift version
run: swift --version
- name: Run tests
run: swift test
build-macos: build-macos:
runs-on: macos-latest runs-on: macos-latest
if: github.event_name == 'release'
strategy: strategy:
matrix: matrix:
arch: [x86_64, arm64] arch: [x86_64, arm64]
@ -53,14 +29,13 @@ jobs:
cp .build/apple/Products/Release/fishee artifacts/macos-${{ matrix.arch }}/ cp .build/apple/Products/Release/fishee artifacts/macos-${{ matrix.arch }}/
- name: Upload macOS artifacts - name: Upload macOS artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: fishee-macos-${{ matrix.arch }}-${{ github.ref_name }} name: fishee-macos-${{ matrix.arch }}-${{ github.ref_name }}
path: artifacts/macos-${{ matrix.arch }} path: artifacts/macos-${{ matrix.arch }}
build-linux: build-linux:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.event_name == 'release'
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v3 uses: actions/checkout@v3
@ -80,7 +55,7 @@ jobs:
cp .build/release/fishee artifacts/linux/ cp .build/release/fishee artifacts/linux/
- name: Upload Linux artifacts - name: Upload Linux artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: fishee-linux-${{ github.ref_name }} name: fishee-linux-${{ github.ref_name }}
path: artifacts/linux path: artifacts/linux

30
.github/workflows/test.yml vendored Normal file
View file

@ -0,0 +1,30 @@
name: Run Tests
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, ubuntu-latest]
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Swift
uses: swift-actions/setup-swift@v2
with:
swift-version: '6.0'
- name: Get swift version
run: swift --version
- name: Run tests
run: swift test

View file

@ -10,17 +10,13 @@ let package = Package(
], ],
dependencies: [ dependencies: [
.package( .package(
url: "https://github.com/apple/swift-argument-parser.git", .upToNextMajor(from: "1.5.0")), url: "https://github.com/apple/swift-argument-parser.git", .upToNextMajor(from: "1.5.0"))
.package(url: "https://github.com/duckdb/duckdb-swift", .upToNextMinor(from: .init(1, 1, 0))),
], ],
targets: [ targets: [
// Targets are the basic building blocks of a package, defining a module or a test suite.
// Targets can depend on other targets in this package and products from dependencies.
.executableTarget( .executableTarget(
name: "Fishee", name: "Fishee",
dependencies: [ dependencies: [
.product(name: "ArgumentParser", package: "swift-argument-parser"), .product(name: "ArgumentParser", package: "swift-argument-parser")
.product(name: "DuckDB", package: "duckdb-swift"),
], ],
path: "Sources" path: "Sources"
), ),
@ -31,6 +27,7 @@ let package = Package(
resources: [ resources: [
.copy("Resources/fish_history_test.txt"), .copy("Resources/fish_history_test.txt"),
.copy("Resources/fish_history_test_2.txt"), .copy("Resources/fish_history_test_2.txt"),
.process("TestPlan.xctestplan"),
] ]
), ),
] ]

View file

@ -23,12 +23,8 @@ final class ParserTests {
let fishHistoryFile = Bundle.module.path(forResource: "fish_history_test", ofType: "txt") let fishHistoryFile = Bundle.module.path(forResource: "fish_history_test", ofType: "txt")
let historyItem = FishHistoryEntry(cmd: "cd Projects/Fishee/", when: 1727545693, paths: ["Projects/Fishee/"]) let historyItem = FishHistoryEntry(cmd: "cd Projects/Fishee/", when: 1727545693, paths: ["Projects/Fishee/"])
let historyItem2 = FishHistoryEntry(cmd: "swift package tools-version", when: 1727545709, paths: []) let historyItem2 = FishHistoryEntry(cmd: "swift package tools-version", when: 1727545709, paths: [])
let filePathforWriteTest = FileManager.default.urls(for: .downloadsDirectory, in: .userDomainMask)[0].appendingPathComponent( let filePathforWriteTest = FileManager.default.homeDirectoryForCurrentUser.appendingPathComponent("myfile.txt")
"myfile.txt" let filePathforFileBackupTest = FileManager.default.homeDirectoryForCurrentUser.appendingPathComponent("myfile_copy.txt")
)
let filePathforFileBackupTest = FileManager.default.urls(for: .downloadsDirectory, in: .userDomainMask)[0].appendingPathComponent(
"myfile_copy.txt"
)
deinit { deinit {
if FileManager.default.fileExists(atPath: filePathforWriteTest.path) { if FileManager.default.fileExists(atPath: filePathforWriteTest.path) {