簡體   English   中英

GitHub 操作上的 SwiftLint 安裝步驟失敗

[英]SwiftLint install step fails on GitHub Actions

最近 GitHub 操作發生了一些變化,我們不確定發生了什么或如何解決它。 我們正在測試和構建 iOS 應用程序,並使用 SwiftLint 進行自動 PR 檢查。

幾個月來,我們的工作配置就像一個魅力,但大約 1.5 周前,事情開始變得不穩定。 有時它會通過,有時它不會。

我們曾經在run-tests.yml文件中有這個:

  - name: Install SwiftLint
    run: brew install swiftlint

9 天前,測試在這一步突然開始失敗。 以下是 GitHub 操作的日志:

==> 澆注 swiftlint-0.42.0.catalina.bottle.tar.gz

錯誤: brew link步驟未成功完成 已構建公式,但未符號鏈接到 /usr/local 無法符號鏈接 bin/swiftlint 目標 /usr/local/bin/swiftlint 已存在。 您可能想要刪除它: rm '/usr/local/bin/swiftlint'

強制鏈接並覆蓋所有沖突文件: brew link --overwrite swiftlint

列出所有將被刪除的文件: brew link --overwrite --dry-run swiftlint

可能的沖突文件是:/usr/local/bin/swiftlint

==> 摘要 /usr/local/Cellar/swiftlint/0.42.0: 6 個文件,12.2MB 錯誤:進程完成,退出代碼為 1。

在做了一些研究后,查看錯誤消息並看到其他作業成功運行(意味着可以正確安裝 SwiftLint),我們決定設置故障保護:嘗試鏈接現有的 SwiftLint,如果失敗,只需安裝它:

  - name: Link SwiftLint or install it
    run: brew link --overwrite swiftlint || brew install swiftlint

這工作了幾天,昨天又出現了。 錯誤日志讓我們感到困惑,所以我們決定在這里詢問其他人是否也遇到這種情況以及如何解決這個問題。 錯誤日志:

運行 brew link --overwrite swiftlint || 沖泡安裝 swiftlint

錯誤:沒有這樣的小桶:/usr/local/Cellar/swiftlint

==> 正在下載https://homebrew.bintray.com/bottles/swiftlint-0.42.0.catalina.bottle.tar.gz

==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/e9023ed754eb8cb78a9f2b469a90875ca42a7afffd3e96f8142252e81d889793?response-content-disposition=attachment%3Bfilename%3D%22swiftlint-0.42.0.catalina.bottle.tar.gz%22&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHAqOi8vZDI5dnprNG93MDd3aTcuY2xvdWRmcm9udC5uZXQvZTkwMjNlZDc1NGViOGNiNzhhOWYyYjQ2OWE5MDg3NWNhNDJhN2FmZmZkM2U5NmY4MTQyMjUyZTgxZDg4OTc5Mz9yZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uPWF0dGFjaG1lbnQlM0JmaWxlbmFtZSUzRCUyMnN3aWZ0bGludC0wLjQyLjAuY2F0YWxpbmEuYm90dGxlLnRhci5neiUyMiIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTYxMTgzMjUzNH0sIklwQWRkcmVzcyI6eyJBV1M6U291cmNlSXAiOiIwLjAuMC4wLzAifX19XX0_&Signature=lH2~FMqNvi1jQxbtgvCFQoZPh3SFuZa3JCgsZ1h3cie4zpArrLUxmRU6OpNk0tgEJ9y3IWpYtBs6xz -NsyeYgZQkbwLGjPA42wBxzT2CfaOgCXlUEK6a7ve5ar7NwOOOUBmr1ypkraZkAP3OVEZ89TFj-ztS8rhGrUNQ3juJOKj11V-SSn07zZVuKwbNsLHqsjHSjqigrRHDng3lQPUE-al~coYbjTED2n87I4lbWSM2m9x30C-vrE5rrKHMyAqgTMiPxECz9ml8pMAuxisNNhLVsg2QyS Rsw5VtIjJi1h0WglzxHai37yV6fnzuuduDzlhPxtFx1jnvNEkpU5~mGg__&Key-Pair-Id=APKAIFKFWOMXM2UMTSFA

==> 澆注 swiftlint-0.42.0.catalina.bottle.tar.gz

錯誤: brew link步驟未成功完成 已構建公式,但未符號鏈接到 /usr/local 無法符號鏈接 bin/swiftlint 目標 /usr/local/bin/swiftlint 已存在。 您可能想要刪除它: rm '/usr/local/bin/swiftlint'

強制鏈接並覆蓋所有沖突文件: brew link --overwrite swiftlint

列出所有將被刪除的文件: brew link --overwrite --dry-run swiftlint

可能的沖突文件是:/usr/local/bin/swiftlint ==> 摘要 /usr/local/Cellar/swiftlint/0.42.0:6 個文件,12.2MB

錯誤:進程已完成,退出代碼為 1。

所以首先它說它不能鏈接現有的 SwiftLint。 好的。 然后它繼續下載它..然后它說它無法鏈接,因為它已經在那里了?!

當然,我們可以提前 go 並嘗試以下操作:

  - name: Link SwiftLint or install it
    run: brew link --overwrite swiftlint || brew install swiftlint || brew link --overwrite swiftlint

但這似乎太老套了,必須有一些更好的解決方案。

非常感謝您的想法和解決方案。

實際上,解決方案似乎非常簡單明了。 查看 GitHub Actions 的最新虛擬 macOS 環境,我看到 SwiftLint 現在已預裝。

奇怪的是,Homebrew 在某些 VM 上能夠安裝 SwiftLint,而在其他 VM 上卻不能。 我希望這一步可以在所有機器上工作或在所有機器上失敗。

無論如何,現在只需刪除鏈接/安裝步驟即可解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM