[PR #1322] [MERGED] Interim fix for Travis macOS Build #1917

Closed
opened 2026-03-04 02:02:47 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/s3fs-fuse/s3fs-fuse/pull/1322
Author: @ggtakec
Created: 7/3/2020
Status: Merged
Merged: 7/10/2020
Merged by: @gaul

Base: masterHead: update_travis_osx


📝 Commits (1)

  • 7c7c348 Interim fix for Travis macOS Build

📊 Changes

2 files changed (+37 additions, -8 deletions)

View changed files

📝 .travis.yml (+36 -7)
📝 test/integration-test-main.sh (+1 -1)

📄 Description

Relevant Issue (if applicable)

#1268

Details

Overview

Travis macOS Build uses Travis cache to reduce build time.
And I confirmed that the Travis macOS build was successful because the cache exists, but it failed when the cache was deleted.
And I also found other issues, this PR is an interim fix for those.

Background about macOS build on Travis-CI

The build of macOS uses macOS 10.12 which is the image of Travis CI(xcode9.2).
The reason for using this image is that it's a version that doesn't require an OS reboot after installing osxfuse.
OS images of 10.13 or later require reboot, and we cannot be built and tested s3fs.
So we need to continue to use 10.12.

And Homebrew is not currently offering this version of the binary package as Apple has dropped 10.12 support.
However, Homebrew offers build and install from source code instead of binary packages.

About changes

(1) If call brew tap without HOMEBREW_NO_AUTO_UPDATE=1, python3 cannot be installed

The failure reason is because Homebrew tries to install sqlite which is a python3 dependency, and fails.
Currently, Travis macOS image (xcode9.2) fails to download the source package from sqlite.org site due to No route or Timeout.
The site has A and AAAA IP addresses, but both are in error.

When there is no cache on travis, HOMEBREW_NO_AUTO_UPDATE=1 was not attached, but HOMEBREW_NO_AUTO_UPDATE=1 was provisionally specified in new code.
Thus we can install python3.

(2) awscli cannot be installed via Homebrew

For 10.12, Homebrew doesn't seem to install aswcli.
So I changed it to install using pip.

(3) truncate package

s3fs travis build had installed Homebrew's truncate package, which has been replaced by gnu's gtruncate provided by the coreutils package.
Therefore, we do not install truncate.

(4) cppcheck compatible

If we install cppcheck after running brew tap without HOMEBREW_NO_AUTO_UPDATE=1, cppcheck 2.1 will be installed.
I found some errors detected in this version, so I fixed it(in curl.cpp).
In this PR code, HOMEBREW_NO_AUTO_UPDATE=1 is set, so 1.81 of cppcheck will be installed. However, the correction is added as a preventive measure.

(5) Modification of travis.yml

Incorporated some debugging messages and comments into .travis.yml.
Moreover, the part where the warning was detected by the validation of Travis (matrix->jobs etc.) was corrected.

(6) Modification of test code

If testing without python3, skip the write_multiple test cases.
I also fixed an incorrect call in test_ut_ossfs case.

Note

When merging this PR, please clear the cache of master on Travis-CI before merging.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/s3fs-fuse/s3fs-fuse/pull/1322 **Author:** [@ggtakec](https://github.com/ggtakec) **Created:** 7/3/2020 **Status:** ✅ Merged **Merged:** 7/10/2020 **Merged by:** [@gaul](https://github.com/gaul) **Base:** `master` ← **Head:** `update_travis_osx` --- ### 📝 Commits (1) - [`7c7c348`](https://github.com/s3fs-fuse/s3fs-fuse/commit/7c7c3489414bcd0ebf5cab655e7d30bdcd219e25) Interim fix for Travis macOS Build ### 📊 Changes **2 files changed** (+37 additions, -8 deletions) <details> <summary>View changed files</summary> 📝 `.travis.yml` (+36 -7) 📝 `test/integration-test-main.sh` (+1 -1) </details> ### 📄 Description ## Relevant Issue (if applicable) #1268 ## Details ### Overview Travis macOS Build uses Travis cache to reduce build time. And I confirmed that the Travis macOS build was successful because the cache exists, but it failed when the cache was deleted. And I also found other issues, this PR is an interim fix for those. ### Background about macOS build on Travis-CI The build of macOS uses macOS 10.12 which is the image of Travis CI(xcode9.2). The reason for using this image is that it's a version that doesn't require an OS reboot after installing osxfuse. OS images of 10.13 or later require reboot, and we cannot be built and tested s3fs. So we need to continue to use 10.12. And Homebrew is not currently offering this version of the binary package as Apple has dropped 10.12 support. However, Homebrew offers build and install from source code instead of binary packages. ### About changes #### (1) If call brew tap without HOMEBREW_NO_AUTO_UPDATE=1, python3 cannot be installed The failure reason is because Homebrew tries to install sqlite which is a python3 dependency, and fails. Currently, Travis macOS image (xcode9.2) fails to download the source package from sqlite.org site due to `No route` or `Timeout`. _The site has A and AAAA IP addresses, but both are in error._ When there is no cache on travis, `HOMEBREW_NO_AUTO_UPDATE=1` was not attached, but `HOMEBREW_NO_AUTO_UPDATE=1` was provisionally specified in new code. Thus we can install python3. #### (2) awscli cannot be installed via Homebrew For 10.12, Homebrew doesn't seem to install aswcli. So I changed it to install using pip. #### (3) truncate package s3fs travis build had installed Homebrew's truncate package, which has been replaced by gnu's gtruncate provided by the coreutils package. Therefore, we do not install truncate. #### (4) cppcheck compatible If we install cppcheck after running brew tap without `HOMEBREW_NO_AUTO_UPDATE=1`, cppcheck 2.1 will be installed. I found some errors detected in this version, so I fixed it(in curl.cpp). _In this PR code, HOMEBREW_NO_AUTO_UPDATE=1 is set, so 1.81 of cppcheck will be installed. However, the correction is added as a preventive measure._ #### (5) Modification of travis.yml Incorporated some debugging messages and comments into .travis.yml. Moreover, the part where the warning was detected by the validation of Travis (matrix->jobs etc.) was corrected. #### (6) Modification of test code If testing without python3, skip the `write_multiple` test cases. I also fixed an incorrect call in `test_ut_ossfs` case. ### Note When merging this PR, please **clear the cache of master** on Travis-CI before merging. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-04 02:02:47 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/s3fs-fuse#1917
No description provided.