diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..7df54204 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,125 @@ +name: release + +on: + push: + tags: + - "v*.*.*" + +jobs: + changelog: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Get release notes from changelog + id: release_notes + run: | + export VERSION=$(echo ${{ github.ref_name }} | sed 's/^v//') + echo "VERSION = ${VERSION}" + awk "/## v${VERSION}.*/{include=1; next} /## v.*/{include=0} include && NF" CHANGELOG.md > ./CHANGELOG-release.md + cat ./CHANGELOG-release.md + + - name: Release Change log + uses: softprops/action-gh-release@v2 + with: + generate_release_notes: true + body_path: ./CHANGELOG-release.md + + release-linux: + needs: changelog + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'true' + - name: Install Dependencies + run: | + sudo apt-get update && \ + sudo apt-get install -y --no-install-recommends curl libssl-dev pkg-config libclang-dev protobuf-compiler libprotobuf-dev libsqlite3-dev zip + + - uses: pnpm/action-setup@v4 + with: + version: 9 + - name: PNPM install + run: | + pnpm i + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + target: x86_64-unknown-linux-gnu + default: true + - name: Rust Build + run: | + RUSTFLAGS="-C target-feature=+crt-static" cargo build --target x86_64-unknown-linux-gnu --release --bin trail && \ + zip -r -j trailbase_${{ github.ref_name }}_x86_64_linux.zip target/x86_64-unknown-linux-gnu/release/trail CHANGELOG.md LICENSE + + - name: Release binaries + uses: softprops/action-gh-release@v2 + with: + fail_on_unmatched_files: true + files: trailbase_${{ github.ref_name }}_x86_64_linux.zip + + release-aarch64-apple-darwin: + needs: changelog + runs-on: macos-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'true' + - name: Install Dependencies + run: | + brew update && brew install pkg-config protobuf sqlite + + - uses: pnpm/action-setup@v4 + with: + version: 9 + - name: PNPM install + run: | + pnpm i + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + target: aarch64-apple-darwin + default: true + - name: Rust Build + run: | + cargo build --target aarch64-apple-darwin --release --bin trail && \ + zip -r -j trailbase_${{ github.ref_name }}_arm64_apple_darwin.zip target/aarch64-apple-darwin/release/trail CHANGELOG.md LICENSE + + - name: Release binaries + uses: softprops/action-gh-release@v2 + with: + fail_on_unmatched_files: true + files: trailbase_${{ github.ref_name }}_arm64_apple_darwin.zip + + release-x86_64-apple-darwin: + needs: changelog + runs-on: macos-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: 'true' + - name: Install Dependencies + run: | + brew update && brew install pkg-config protobuf sqlite + + - uses: pnpm/action-setup@v4 + with: + version: 9 + - name: PNPM install + run: | + pnpm i + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + target: x86_64-apple-darwin + default: true + - name: Rust Build + run: | + cargo build --target x86_64-apple-darwin --release --bin trail && \ + zip -r -j trailbase_${{ github.ref_name }}_x86_64_apple_darwin.zip target/x86_64-apple-darwin/release/trail CHANGELOG.md LICENSE + + - name: Release binaries + uses: softprops/action-gh-release@v2 + with: + fail_on_unmatched_files: true + files: trailbase_${{ github.ref_name }}_x86_64_apple_darwin.zip diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 11d1ee21..57df081f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -34,6 +34,3 @@ jobs: default: true - uses: actions/setup-python@v3 - uses: pre-commit/action@v3.0.1 - # - name: Rust tests - # run: | - # cargo test -p trailbase-core -p trailbase-extension -p trailbase-sqlite -p trailbase-cli diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..a6e64836 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,10 @@ +## v0.1.1 + +* Changed license to OSI-approved weak-copyleft OSL-3.0. +* Add GitHub action workflow to automatically build and publish binary releases + for Linux adm64 as well as MacOS intel and apple arm silicone. +* Add support for geoip database to map client-ips to countries and draw a world map. + +## v0.1.0 + +* Initial release. diff --git a/README.md b/README.md index 596d6e66..01ff3a9e 100644 --- a/README.md +++ b/README.md @@ -25,10 +25,6 @@ Packages and pre-built binaries are available via: Pre-built static binaries are also available as [GitHub releases](https://github.com/trailbaseio/trailbase/releases/). -At the moment that is builds for `Linux x86_64` only until we get our -cross-platform build infrastructure set up. -In the meantime, you can use docker or try building it yourself. We have built -TrailBase successfully on Mac and Apple silicone, see instructions below. ## Building