-
Notifications
You must be signed in to change notification settings - Fork 152
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
port Github Actions workflow from s3fs(v1.91).
- Loading branch information
Showing
6 changed files
with
430 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
### Additional Information | ||
_The following information is very important in order to help us to help you. Omission of the following details may delay your support request or receive no attention at all._ | ||
_Keep in mind that the commands we provide to retrieve information are oriented to GNU/Linux Distributions, so you could need to use others if you use s3fs on macOS or BSD_ | ||
|
||
#### Version of s3fs being used (s3fs --version) | ||
_example: 1.00_ | ||
|
||
#### Version of fuse being used (pkg-config --modversion fuse, rpm -qi fuse, dpkg -s fuse) | ||
_example: 2.9.4_ | ||
|
||
#### Kernel information (uname -r) | ||
_command result: uname -r_ | ||
|
||
#### GNU/Linux Distribution, if applicable (cat /etc/os-release) | ||
_command result: cat /etc/os-release_ | ||
|
||
#### s3fs command line used, if applicable | ||
``` | ||
``` | ||
#### /etc/fstab entry, if applicable | ||
``` | ||
``` | ||
#### s3fs syslog messages (grep s3fs /var/log/syslog, journalctl | grep s3fs, or s3fs outputs) | ||
_if you execute s3fs with dbglevel, curldbg option, you can get detail debug messages_ | ||
``` | ||
``` | ||
### Details about issue | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
### Relevant Issue (if applicable) | ||
_If there are Issues related to this PullRequest, please list it._ | ||
|
||
### Details | ||
_Please describe the details of PullRequest._ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,180 @@ | ||
# | ||
# s3fs - FUSE-based file system backed by Amazon S3 | ||
# | ||
# Copyright(C) 2007 Takeshi Nakatani <ggtakec.com> | ||
# | ||
# This program is free software; you can redistribute it and/or | ||
# modify it under the terms of the GNU General Public License | ||
# as published by the Free Software Foundation; either version 2 | ||
# of the License, or (at your option) any later version. | ||
# | ||
# This program is distributed in the hope that it will be useful, | ||
# but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
# GNU General Public License for more details. | ||
# | ||
# You should have received a copy of the GNU General Public License | ||
# along with this program; if not, write to the Free Software | ||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
# | ||
|
||
name: s3fs-fuse CI | ||
|
||
on: | ||
push: | ||
pull_request: | ||
# | ||
# CRON event is fire on every sunday(UTC). | ||
# | ||
schedule: | ||
- cron: '0 0 * * 0' | ||
|
||
# | ||
# Jobs | ||
# | ||
jobs: | ||
Linux: | ||
runs-on: ubuntu-latest | ||
|
||
# | ||
# build matrix for containers | ||
# | ||
strategy: | ||
# | ||
# do not stop jobs automatically if any of the jobs fail | ||
# | ||
fail-fast: false | ||
|
||
# | ||
# matrix for containers | ||
# | ||
matrix: | ||
container: | ||
- ubuntu:21.10 | ||
- ubuntu:20.04 | ||
- ubuntu:18.04 | ||
- debian:bullseye | ||
- debian:buster | ||
- debian:stretch | ||
- rockylinux:8 | ||
- centos:centos7 | ||
- fedora:35 | ||
- opensuse/leap:15 | ||
|
||
container: | ||
image: ${{ matrix.container }} | ||
|
||
options: "--privileged --cap-add SYS_ADMIN --device /dev/fuse" | ||
|
||
env: | ||
# [NOTE] | ||
# Installation special environment variables for debian and ubuntu. | ||
# | ||
DEBIAN_FRONTEND: noninteractive | ||
|
||
steps: | ||
# [NOTE] | ||
# On openSUSE, tar and gzip must be installed before action/checkout. | ||
# | ||
- name: Install packages before checkout | ||
run: | | ||
if [ "${{ matrix.container }}" = "opensuse/leap:15" ]; then zypper install -y tar gzip; fi | ||
- name: Checkout source code | ||
uses: actions/checkout@v2 | ||
|
||
# [NOTE] | ||
# Matters that depend on OS:VERSION are determined and executed in the following script. | ||
# Please note that the option to configure (CONFIGURE_OPTIONS) is set in the environment variable. | ||
# | ||
- name: Install packages | ||
run: | | ||
.github/workflows/linux-ci-helper.sh ${{ matrix.container }} | ||
- name: Build | ||
run: | | ||
./autogen.sh | ||
/bin/sh -c "./configure ${CONFIGURE_OPTIONS}" | ||
make --jobs=$(nproc) | ||
- name: Cppcheck | ||
run: | | ||
# work around resource leak false positives on older Linux distributions | ||
if cppcheck --version | awk '{if ($2 <= 1.86) { exit(1) } }'; then | ||
make cppcheck | ||
fi | ||
- name: Shellcheck | ||
run: | | ||
make shellcheck | ||
- name: Test suite | ||
run: | | ||
make ALL_TESTS=1 check -C test || (test/filter-suite-log.sh test/test-suite.log; exit 1) | ||
# [NOTE] | ||
# A case of "runs-on: macos-11.0" does not work, | ||
# because load_osxfuse returns exit code = 1. | ||
# Maybe it needs to reboot. Apple said | ||
# "Installing a new kernel extension requires signing in as an Admin user. You must also restart your Mac to load the extension". | ||
# Then we do not use macos 11 on GitHub Actions now. | ||
# | ||
macos10: | ||
runs-on: macos-10.15 | ||
|
||
steps: | ||
- name: Checkout source code | ||
uses: actions/checkout@v2 | ||
|
||
- name: Brew tap | ||
run: | | ||
TAPS="$(brew --repository)/Library/Taps"; | ||
if [ -e "$TAPS/caskroom/homebrew-cask" ]; then rm -rf "$TAPS/caskroom/homebrew-cask"; fi; | ||
HOMEBREW_NO_AUTO_UPDATE=1 brew tap homebrew/homebrew-cask | ||
- name: Install osxfuse | ||
run: | | ||
HOMEBREW_NO_AUTO_UPDATE=1 brew install osxfuse | ||
- name: Install brew other packages | ||
run: | | ||
S3FS_BREW_PACKAGES='automake cppcheck python3 coreutils gnu-sed shellcheck'; | ||
for s3fs_brew_pkg in ${S3FS_BREW_PACKAGES}; do if brew list | grep -q ${s3fs_brew_pkg}; then if brew outdated | grep -q ${s3fs_brew_pkg}; then HOMEBREW_NO_AUTO_UPDATE=1 brew upgrade ${s3fs_brew_pkg}; fi; else HOMEBREW_NO_AUTO_UPDATE=1 brew install ${s3fs_brew_pkg}; fi; done; | ||
- name: Install awscli | ||
run: | | ||
if pip3 --version; then pip3 install awscli; else curl https://bootstrap.pypa.io/get-pip.py | sudo python; pip install awscli --ignore-installed matplotlib; fi | ||
- name: Check osxfuse permission | ||
run: | | ||
if [ -f /Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs ]; then sudo chmod +s /Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs; elif [ -f /Library/Filesystems/osxfuse.fs/Contents/Resources/load_osxfuse ]; then sudo chmod +s /Library/Filesystems/osxfuse.fs/Contents/Resources/load_osxfuse; else exit 1; fi | ||
- name: Build | ||
run: | | ||
./autogen.sh | ||
PKG_CONFIG_PATH=/usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/openssl/lib/pkgconfig ./configure CXXFLAGS='-std=c++03 -DS3FS_PTHREAD_ERRORCHECK=1' | ||
make --jobs=$(sysctl -n hw.ncpu) | ||
- name: Cppcheck | ||
run: | | ||
make cppcheck | ||
- name: Shellcheck | ||
run: | | ||
make shellcheck | ||
- name: Test suite | ||
run: | | ||
make check -C src | ||
echo "user_allow_other" | sudo tee -a /etc/fuse.conf >/dev/null | ||
if [ -f /Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs ]; then /Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs; elif [ -f /Library/Filesystems/osxfuse.fs/Contents/Resources/load_osxfuse ]; then /Library/Filesystems/osxfuse.fs/Contents/Resources/load_osxfuse; else exit 1; fi | ||
make ALL_TESTS=1 check -C test || (test/filter-suite-log.sh test/test-suite.log; exit 1) | ||
# | ||
# Local variables: | ||
# tab-width: 4 | ||
# c-basic-offset: 4 | ||
# End: | ||
# vim600: expandtab sw=4 ts=4 fdm=marker | ||
# vim<600: expandtab sw=4 ts=4 | ||
# |
Oops, something went wrong.