mirror of
				https://github.com/eledio-devices/thirdparty-littlefs.git
				synced 2025-10-31 08:42:40 +01:00 
			
		
		
		
	Merge remote-tracking branch 'origin/master' into v2-alpha
This commit is contained in:
		
							
								
								
									
										123
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										123
									
								
								.travis.yml
									
									
									
									
									
								
							| @@ -36,7 +36,7 @@ script: | |||||||
|     if [ "$TRAVIS_TEST_RESULT" -eq 0 ] |     if [ "$TRAVIS_TEST_RESULT" -eq 0 ] | ||||||
|     then |     then | ||||||
|         CURR=$(tail -n1 sizes | awk '{print $1}') |         CURR=$(tail -n1 sizes | awk '{print $1}') | ||||||
|         PREV=$(curl -u $GEKY_BOT_STATUSES https://api.github.com/repos/$TRAVIS_REPO_SLUG/status/master \ |         PREV=$(curl -u "$GEKY_BOT_STATUSES" https://api.github.com/repos/$TRAVIS_REPO_SLUG/status/master \ | ||||||
|             | jq -re "select(.sha != \"$TRAVIS_COMMIT\") |             | jq -re "select(.sha != \"$TRAVIS_COMMIT\") | ||||||
|                 | .statuses[] | select(.context == \"$STAGE/$NAME\").description |                 | .statuses[] | select(.context == \"$STAGE/$NAME\").description | ||||||
|                 | capture(\"code size is (?<size>[0-9]+)\").size" \ |                 | capture(\"code size is (?<size>[0-9]+)\").size" \ | ||||||
| @@ -101,6 +101,7 @@ jobs: | |||||||
|       env: |       env: | ||||||
|         - STAGE=test |         - STAGE=test | ||||||
|         - NAME=littlefs-fuse |         - NAME=littlefs-fuse | ||||||
|  |       if: branch !~ -prefix$ | ||||||
|       install: |       install: | ||||||
|         - sudo apt-get install libfuse-dev |         - sudo apt-get install libfuse-dev | ||||||
|         - git clone --depth 1 https://github.com/geky/littlefs-fuse -b v2-alpha |         - git clone --depth 1 https://github.com/geky/littlefs-fuse -b v2-alpha | ||||||
| @@ -187,64 +188,82 @@ jobs: | |||||||
|         - STAGE=deploy |         - STAGE=deploy | ||||||
|         - NAME=deploy |         - NAME=deploy | ||||||
|       script: |       script: | ||||||
|         # Find version defined in lfs.h |  | ||||||
|         - LFS_VERSION=$(grep -ox '#define LFS_VERSION .*' lfs.h | cut -d ' ' -f3) |  | ||||||
|         - LFS_VERSION_MAJOR=$((0xffff & ($LFS_VERSION >> 16))) |  | ||||||
|         - LFS_VERSION_MINOR=$((0xffff & ($LFS_VERSION >>  0))) |  | ||||||
|         # Grab latests patch from repo tags, default to 0, needs finagling to get past github's pagination api |  | ||||||
|         - PREV_URL=https://api.github.com/repos/$TRAVIS_REPO_SLUG/git/refs/tags/v$LFS_VERSION_MAJOR.$LFS_VERSION_MINOR. |  | ||||||
|         - PREV_URL=$(curl -u "$GEKY_BOT_RELEASES" "$PREV_URL" -I |  | ||||||
|                 | sed -n '/^Link/{s/.*<\(.*\)>; rel="last"/\1/;p;q0};$q1' |  | ||||||
|                 || echo $PREV_URL) |  | ||||||
|         - LFS_VERSION_PATCH=$(curl -u "$GEKY_BOT_RELEASES" "$PREV_URL" |  | ||||||
|                 | jq 'map(.ref | match("\\bv.*\\..*\\.(.*)$";"g") |  | ||||||
|                     .captures[].string | tonumber) | max + 1' |  | ||||||
|                 || echo 0) |  | ||||||
|         # We have our new version |  | ||||||
|         - LFS_VERSION="v$LFS_VERSION_MAJOR.$LFS_VERSION_MINOR.$LFS_VERSION_PATCH" |  | ||||||
|         - echo "VERSION $LFS_VERSION" |  | ||||||
|         - | |         - | | ||||||
|  |           bash << 'SCRIPT' | ||||||
|  |           set -ev | ||||||
|  |           # Find version defined in lfs.h | ||||||
|  |           LFS_VERSION=$(grep -ox '#define LFS_VERSION .*' lfs.h | cut -d ' ' -f3) | ||||||
|  |           LFS_VERSION_MAJOR=$((0xffff & ($LFS_VERSION >> 16))) | ||||||
|  |           LFS_VERSION_MINOR=$((0xffff & ($LFS_VERSION >>  0))) | ||||||
|  |           # Grab latests patch from repo tags, default to 0, needs finagling | ||||||
|  |           # to get past github's pagination api | ||||||
|  |           PREV_URL=https://api.github.com/repos/$TRAVIS_REPO_SLUG/git/refs/tags/v$LFS_VERSION_MAJOR.$LFS_VERSION_MINOR. | ||||||
|  |           PREV_URL=$(curl -u "$GEKY_BOT_RELEASES" "$PREV_URL" -I \ | ||||||
|  |               | sed -n '/^Link/{s/.*<\(.*\)>; rel="last"/\1/;p;q0};$q1' \ | ||||||
|  |               || echo $PREV_URL) | ||||||
|  |           LFS_VERSION_PATCH=$(curl -u "$GEKY_BOT_RELEASES" "$PREV_URL" \ | ||||||
|  |               | jq 'map(.ref | match("\\bv.*\\..*\\.(.*)$";"g") | ||||||
|  |                   .captures[].string | tonumber) | max + 1' \ | ||||||
|  |               || echo 0) | ||||||
|  |           # We have our new version | ||||||
|  |           LFS_VERSION="v$LFS_VERSION_MAJOR.$LFS_VERSION_MINOR.$LFS_VERSION_PATCH" | ||||||
|  |           echo "VERSION $LFS_VERSION" | ||||||
|           # Check that we're the most recent commit |           # Check that we're the most recent commit | ||||||
|           CURRENT_COMMIT=$(curl -f -u "$GEKY_BOT_RELEASES" \ |           CURRENT_COMMIT=$(curl -f -u "$GEKY_BOT_RELEASES" \ | ||||||
|                 https://api.github.com/repos/$TRAVIS_REPO_SLUG/commits/master \ |               https://api.github.com/repos/$TRAVIS_REPO_SLUG/commits/master \ | ||||||
|                 | jq -re '.sha') |               | jq -re '.sha') | ||||||
|           if [ "$TRAVIS_COMMIT" == "$CURRENT_COMMIT" ] |           [ "$TRAVIS_COMMIT" == "$CURRENT_COMMIT" ] || exit 0 | ||||||
|  |           # Create major branch | ||||||
|  |           git branch v$LFS_VERSION_MAJOR HEAD | ||||||
|  |           # Create major prefix branch | ||||||
|  |           git config user.name "geky bot" | ||||||
|  |           git config user.email "bot@geky.net" | ||||||
|  |           git fetch https://github.com/$TRAVIS_REPO_SLUG.git \ | ||||||
|  |               --depth=50 v$LFS_VERSION_MAJOR-prefix || true | ||||||
|  |           ./scripts/prefix.py lfs$LFS_VERSION_MAJOR | ||||||
|  |           git branch v$LFS_VERSION_MAJOR-prefix $( \ | ||||||
|  |               git commit-tree $(git write-tree) \ | ||||||
|  |                   $(git rev-parse --verify -q FETCH_HEAD | sed -e 's/^/-p /') \ | ||||||
|  |                   -p HEAD \ | ||||||
|  |                   -m "Generated v$LFS_VERSION_MAJOR prefixes") | ||||||
|  |           git reset --hard | ||||||
|  |           # Update major version branches (vN and vN-prefix) | ||||||
|  |           git push https://$GEKY_BOT_RELEASES@github.com/$TRAVIS_REPO_SLUG.git \ | ||||||
|  |               v$LFS_VERSION_MAJOR \ | ||||||
|  |               v$LFS_VERSION_MAJOR-prefix | ||||||
|  |           # Create patch version tag (vN.N.N) | ||||||
|  |           curl -f -u "$GEKY_BOT_RELEASES" -X POST \ | ||||||
|  |               https://api.github.com/repos/$TRAVIS_REPO_SLUG/git/refs \ | ||||||
|  |               -d "{ | ||||||
|  |                   \"ref\": \"refs/tags/$LFS_VERSION\", | ||||||
|  |                   \"sha\": \"$TRAVIS_COMMIT\" | ||||||
|  |               }" | ||||||
|  |           # Create minor release? | ||||||
|  |           [[ "$LFS_VERSION" == *.0 ]] || exit 0 | ||||||
|  |           # Build release notes | ||||||
|  |           PREV=$(git tag --sort=-v:refname -l "v*.0" | head -1) | ||||||
|  |           if [ ! -z "$PREV" ] | ||||||
|           then |           then | ||||||
|             # Create a simple tag |               echo "PREV $PREV" | ||||||
|             curl -f -u "$GEKY_BOT_RELEASES" -X POST \ |               CHANGES=$'### Changes\n\n'$( \ | ||||||
|                 https://api.github.com/repos/$TRAVIS_REPO_SLUG/git/refs \ |                   git log --oneline $PREV.. --grep='^Merge' --invert-grep) | ||||||
|                 -d "{ |               printf "CHANGES\n%s\n\n" "$CHANGES" | ||||||
|                     \"ref\": \"refs/tags/$LFS_VERSION\", |  | ||||||
|                     \"sha\": \"$TRAVIS_COMMIT\" |  | ||||||
|                 }" |  | ||||||
|             # Minor release? |  | ||||||
|             if [[ "$LFS_VERSION" == *.0 ]] |  | ||||||
|             then |  | ||||||
|               # Build release notes |  | ||||||
|               PREV=$(git tag --sort=-v:refname -l "v*.0" | head -1) |  | ||||||
|               if [ ! -z "$PREV" ] |  | ||||||
|               then |  | ||||||
|                   echo "PREV $PREV" |  | ||||||
|                   CHANGES=$'### Changes\n\n'$( \ |  | ||||||
|                       git log --oneline $PREV.. --grep='^Merge' --invert-grep) |  | ||||||
|                   printf "CHANGES\n%s\n\n" "$CHANGES" |  | ||||||
|               fi |  | ||||||
|               # Create the release |  | ||||||
|               curl -f -u "$GEKY_BOT_RELEASES" -X POST \ |  | ||||||
|                   https://api.github.com/repos/$TRAVIS_REPO_SLUG/releases \ |  | ||||||
|                   -d "{ |  | ||||||
|                       \"tag_name\": \"$LFS_VERSION\", |  | ||||||
|                       \"name\": \"${LFS_VERSION%.0}\", |  | ||||||
|                       \"draft\": true, |  | ||||||
|                       \"body\": $(jq -sR '.' <<< "$CHANGES") |  | ||||||
|                   }" |  | ||||||
|             fi |  | ||||||
|           fi |           fi | ||||||
|  |           # Create the release | ||||||
|  |           curl -f -u "$GEKY_BOT_RELEASES" -X POST \ | ||||||
|  |               https://api.github.com/repos/$TRAVIS_REPO_SLUG/releases \ | ||||||
|  |               -d "{ | ||||||
|  |                   \"tag_name\": \"$LFS_VERSION\", | ||||||
|  |                   \"name\": \"${LFS_VERSION%.0}\", | ||||||
|  |                   \"draft\": true, | ||||||
|  |                   \"body\": $(jq -sR '.' <<< "$CHANGES") | ||||||
|  |               }" #" | ||||||
|  |           SCRIPT | ||||||
|  |  | ||||||
| # Manage statuses | # Manage statuses | ||||||
| before_install: | before_install: | ||||||
|   - | |   - | | ||||||
|     curl -u $GEKY_BOT_STATUSES -X POST \ |     curl -u "$GEKY_BOT_STATUSES" -X POST \ | ||||||
|         https://api.github.com/repos/$TRAVIS_REPO_SLUG/statuses/${TRAVIS_PULL_REQUEST_SHA:-$TRAVIS_COMMIT} \ |         https://api.github.com/repos/$TRAVIS_REPO_SLUG/statuses/${TRAVIS_PULL_REQUEST_SHA:-$TRAVIS_COMMIT} \ | ||||||
|         -d "{ |         -d "{ | ||||||
|             \"context\": \"$STAGE/$NAME\", |             \"context\": \"$STAGE/$NAME\", | ||||||
| @@ -255,7 +274,7 @@ before_install: | |||||||
|  |  | ||||||
| after_failure: | after_failure: | ||||||
|   - | |   - | | ||||||
|     curl -u $GEKY_BOT_STATUSES -X POST \ |     curl -u "$GEKY_BOT_STATUSES" -X POST \ | ||||||
|         https://api.github.com/repos/$TRAVIS_REPO_SLUG/statuses/${TRAVIS_PULL_REQUEST_SHA:-$TRAVIS_COMMIT} \ |         https://api.github.com/repos/$TRAVIS_REPO_SLUG/statuses/${TRAVIS_PULL_REQUEST_SHA:-$TRAVIS_COMMIT} \ | ||||||
|         -d "{ |         -d "{ | ||||||
|             \"context\": \"$STAGE/$NAME\", |             \"context\": \"$STAGE/$NAME\", | ||||||
| @@ -266,7 +285,7 @@ after_failure: | |||||||
|  |  | ||||||
| after_success: | after_success: | ||||||
|   - | |   - | | ||||||
|     curl -u $GEKY_BOT_STATUSES -X POST \ |     curl -u "$GEKY_BOT_STATUSES" -X POST \ | ||||||
|         https://api.github.com/repos/$TRAVIS_REPO_SLUG/statuses/${TRAVIS_PULL_REQUEST_SHA:-$TRAVIS_COMMIT} \ |         https://api.github.com/repos/$TRAVIS_REPO_SLUG/statuses/${TRAVIS_PULL_REQUEST_SHA:-$TRAVIS_COMMIT} \ | ||||||
|         -d "{ |         -d "{ | ||||||
|             \"context\": \"$STAGE/$NAME\", |             \"context\": \"$STAGE/$NAME\", | ||||||
|   | |||||||
| @@ -114,7 +114,7 @@ the filesystem until sync or close is called on the file. | |||||||
|  |  | ||||||
| ## Other notes | ## Other notes | ||||||
|  |  | ||||||
| All littlefs functions have the potential to return a negative error code. The | All littlefs calls have the potential to return a negative error code. The | ||||||
| errors can be either one of those found in the `enum lfs_error` in | errors can be either one of those found in the `enum lfs_error` in | ||||||
| [lfs.h](lfs.h), or an error returned by the user's block device operations. | [lfs.h](lfs.h), or an error returned by the user's block device operations. | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user