-
Notifications
You must be signed in to change notification settings - Fork 67
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #268 from ipfs/branch-v0.23.0
Update to Kubo v0.23.0 - add prebuilt-binary pipeline
- Loading branch information
Showing
11 changed files
with
616 additions
and
1,550 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
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,120 @@ | ||
name: Kubo plugin | ||
|
||
on: | ||
push: | ||
|
||
|
||
env: | ||
# must be same as official ipfs builds. See distributions/.tool-versions | ||
GO_VERSION: "1.21.1" | ||
|
||
jobs: | ||
build-artifacts: | ||
name: "Build" | ||
strategy: | ||
matrix: | ||
os: | ||
- ubuntu-20.04 | ||
- macos-latest | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 2 | ||
- name: Set up Go | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: ${{ env.GO_VERSION }} | ||
- name: Extract release name from tag | ||
run: | | ||
RELEASE=$(basename ${{ github.ref_name }}) | ||
echo "RELEASE=$RELEASE" >> "$GITHUB_ENV" | ||
- name: Package plugin | ||
run: make dist-plugin | ||
- name: Record Go environment | ||
run: | | ||
echo "GOHOSTOS=$(go env GOHOSTOS)" >> "$GITHUB_ENV" | ||
echo "GOHOSTARCH=$(go env GOHOSTARCH)" >> "$GITHUB_ENV" | ||
- name: Rename package | ||
run: | | ||
NAME="go-ds-s3-plugin_${{ env.RELEASE }}_${{ env.GOHOSTOS }}_${{ env.GOHOSTARCH }}.tar.gz" | ||
mv go-ds-s3-plugin/go-ds-s3-plugin.tar.gz "$NAME" | ||
echo "ARTIFACT_NAME=$NAME" >> "$GITHUB_ENV" | ||
- name: Archive artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ${{ env.ARTIFACT_NAME }} | ||
path: go-ds-s3-plugin_*.tar.gz | ||
|
||
test-artifacts: | ||
name: "Test" | ||
needs: build-artifacts | ||
strategy: | ||
matrix: | ||
os: | ||
- ubuntu-20.04 | ||
# macos test fail with dist-built ipfs. | ||
# - macos-latest | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 2 | ||
- name: Set up Go | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: ${{ env.GO_VERSION }} | ||
- name: Record variables | ||
run: | | ||
V=`cat go.mod | grep github.com/ipfs/kubo | grep -o 'v.*'` | ||
echo "KUBO_VERSION=$V" >> "$GITHUB_ENV" | ||
GOHOSTOS=`go env GOHOSTOS` | ||
echo "GOHOSTOS=$GOHOSTOS" >> "$GITHUB_ENV" | ||
RELEASE=$(basename ${{ github.ref_name }}) | ||
echo "RELEASE=$RELEASE" >> "$GITHUB_ENV" | ||
echo PLUGIN_ARTIFACT=go-ds-s3-plugin_${RELEASE}_${GOHOSTOS}_amd64.tar.gz >> "$GITHUB_ENV" | ||
- name: Download artifact | ||
id: download | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: ${{ env.PLUGIN_ARTIFACT }} | ||
- name: Download unpack Kubo | ||
run: | | ||
wget -nv https://dist.ipfs.tech/kubo/${{ env.KUBO_VERSION }}/kubo_${{ env.KUBO_VERSION }}_${{ env.GOHOSTOS }}-amd64.tar.gz | ||
tar -xf kubo_${{ env.KUBO_VERSION }}_${{ env.GOHOSTOS }}-amd64.tar.gz | ||
tar -xf go-ds-s3-plugin_*.tar.gz | ||
chmod +x kubo/ipfs | ||
- name: Initialize IPFS and copy plugin | ||
run: | | ||
export IPFS_PATH=$(pwd)/ipfs-config | ||
echo "IPFS_PATH=$IPFS_PATH" >> "$GITHUB_ENV" | ||
./kubo/ipfs init | ||
mkdir -p ipfs-config/plugins | ||
cp go-ds-s3-plugin/go-ds-s3-plugin ipfs-config/plugins/ | ||
- name: Check IPFS works with the plugin | ||
run: ./kubo/ipfs version --all | ||
|
||
release: | ||
name: "Release" | ||
needs: test-artifacts | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- name: Download artifacts | ||
id: download | ||
uses: actions/download-artifact@v3 | ||
- name: Extract release name from tag | ||
run: | | ||
RELEASE=$(basename ${{ github.ref_name }}) | ||
echo "RELEASE=$RELEASE" >> "$GITHUB_ENV" | ||
- name: Release | ||
uses: softprops/action-gh-release@v1 | ||
if: startsWith(github.ref, 'refs/tags/go-ds-s3-plugin/v') | ||
with: | ||
files: go-ds-s3-plugin_*.tar.gz/* | ||
body: | | ||
This is a binary build of the go-ds-s3 Kubo plugin targeting Kubo version ${{ env.RELEASE }}. | ||
To install, download the relevant asset for your platform, unpack the plugin file (`go-ds-s3-plugin`) and place it in `~/.ipfs/plugins`. MacOS users will need to compile Kubo themselves, as the official releases have no CGO support. | ||
See the included README.md for more information. | ||
name: ${{ github.ref_name }} |
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 |
---|---|---|
@@ -1,38 +1,15 @@ | ||
# Force Go Modules | ||
GO111MODULE = on | ||
plugin: | ||
$(MAKE) -C go-ds-s3-plugin all | ||
|
||
GOCC ?= go | ||
GOFLAGS ?= | ||
install-plugin: | ||
$(MAKE) -C go-ds-s3-plugin install | ||
|
||
# If set, override the install location for plugins | ||
IPFS_PATH ?= $(HOME)/.ipfs | ||
dist-plugin: | ||
$(MAKE) -C go-ds-s3-plugin dist | ||
|
||
# If set, override the IPFS version to build against. This _modifies_ the local | ||
# go.mod/go.sum files and permanently sets this version. | ||
IPFS_VERSION ?= $(lastword $(shell $(GOCC) list -m github.com/ipfs/kubo)) | ||
check: | ||
go vet ./... | ||
staticcheck --checks all ./... | ||
misspell -error -locale US . | ||
|
||
# make reproducible | ||
ifneq ($(findstring /,$(IPFS_VERSION)),) | ||
# Locally built kubo | ||
GOFLAGS += -asmflags=all=-trimpath="$(GOPATH)" -gcflags=all=-trimpath="$(GOPATH)" | ||
else | ||
# Remote version of kubo (e.g. via `go get -trimpath` or official distribution) | ||
GOFLAGS += -trimpath | ||
endif | ||
|
||
.PHONY: install build | ||
|
||
go.mod: FORCE | ||
./set-target.sh $(IPFS_VERSION) | ||
|
||
FORCE: | ||
|
||
s3plugin.so: plugin/main/main.go go.mod | ||
CGO_ENABLED=1 $(GOCC) build $(GOFLAGS) -buildmode=plugin -o "$@" "$<" | ||
chmod +x "$@" | ||
|
||
build: s3plugin.so | ||
@echo "Built against" $(IPFS_VERSION) | ||
|
||
install: build | ||
install -Dm700 s3plugin.so "$(IPFS_PATH)/plugins/go-ds-s3.so" | ||
.PHONY: plugin install-plugin check |
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,23 @@ | ||
SRC := $(shell find ../.. -type f -name '*.go') | ||
IPFS_PATH ?= $(HOME)/.ipfs | ||
|
||
export CGO_ENABLED := 1 | ||
|
||
all: build | ||
|
||
build: $(SRC) | ||
go build -buildmode=plugin -trimpath -o go-ds-s3-plugin | ||
|
||
install: build | ||
mkdir -p "$(IPFS_PATH)/.ipfs/plugins" | ||
install -Dm700 go-ds-s3-plugin "$(IPFS_PATH)/plugins/go-ds-s3-plugin" | ||
|
||
dist: build | ||
mkdir -p dist/go-ds-s3-plugin | ||
cp go-ds-s3-plugin README.md dist/go-ds-s3-plugin/ | ||
chmod +x dist/go-ds-s3-plugin/go-ds-s3-plugin | ||
tar -C dist -zcf go-ds-s3-plugin.tar.gz go-ds-s3-plugin | ||
rm -rf go-ds-s3-plugin | ||
echo "Packaged as go-ds-s3-plugin.tar.gz" | ||
|
||
.PHONY: install |
Oops, something went wrong.