| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| # Builds cross-platform binaries and connector plugins, then publishes |
| # them as a rolling "edge" GitHub pre-release updated on every master push. |
| |
| name: Edge release |
| |
| on: |
| push: |
| branches: [master] |
| |
| permissions: |
| contents: read |
| |
| concurrency: |
| group: edge-release-${{ github.ref }} |
| cancel-in-progress: true |
| |
| env: |
| IGGY_CI_BUILD: true |
| |
| jobs: |
| build-artifacts: |
| name: Build artifacts |
| uses: ./.github/workflows/_build_rust_artifacts.yml |
| with: |
| version: edge |
| upload_artifacts: true |
| |
| create-prerelease: |
| name: Create edge pre-release |
| runs-on: ubuntu-latest |
| needs: build-artifacts |
| if: needs.build-artifacts.result == 'success' && !github.event.repository.fork |
| permissions: |
| contents: write |
| steps: |
| - uses: actions/checkout@v7.0.0 |
| |
| - name: Get server version |
| id: meta |
| run: | |
| chmod +x scripts/extract-version.sh |
| server_version=$(scripts/extract-version.sh rust-server) |
| echo "server_version=${server_version}" >> "$GITHUB_OUTPUT" |
| |
| - name: Download all artifacts |
| uses: actions/download-artifact@v8 |
| with: |
| name: rust-artifacts-all |
| path: ./artifacts |
| |
| - name: Delete existing edge release and tag |
| env: |
| GH_TOKEN: ${{ github.token }} |
| run: | |
| if gh release view edge &>/dev/null; then |
| echo "Deleting existing edge release and tag..." |
| gh release delete edge --cleanup-tag --yes || echo "Delete failed, continuing..." |
| fi |
| |
| - name: Create edge pre-release |
| uses: softprops/action-gh-release@v3 |
| with: |
| tag_name: edge |
| name: edge |
| draft: false |
| prerelease: true |
| make_latest: false |
| files: artifacts/*.tar.gz |
| body: | |
| Rolling edge build of Apache Iggy binaries and connector plugins. |
| |
| **This release is automatically updated on every push to master.** |
| |
| > Apache Iggy (Incubating) is an effort undergoing incubation at the Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC. |
| > |
| > Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. |
| > |
| > While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. |
| |
| ## Binaries included |
| - `iggy-server` - The server binary |
| - `iggy` - The command-line interface |
| - `iggy-bench` - The benchmarking tool |
| - `iggy-connectors` - The connectors runtime |
| |
| ## Connector plugins included (.so) |
| - `iggy_connector_elasticsearch_sink` |
| - `iggy_connector_elasticsearch_source` |
| - `iggy_connector_iceberg_sink` |
| - `iggy_connector_postgres_sink` |
| - `iggy_connector_postgres_source` |
| - `iggy_connector_quickwit_sink` |
| - `iggy_connector_random_source` |
| - `iggy_connector_s3_sink` |
| - `iggy_connector_stdout_sink` |
| - `iggy_connector_surrealdb_sink` |
| |
| ## Downloads |
| |
| ### Binaries |
| - `iggy-x86_64-unknown-linux-gnu-edge.tar.gz` - Linux x86_64 (glibc) |
| - `iggy-x86_64-unknown-linux-musl-edge.tar.gz` - Linux x86_64 (musl, static) |
| - `iggy-aarch64-unknown-linux-gnu-edge.tar.gz` - Linux ARM64 (glibc) |
| - `iggy-aarch64-unknown-linux-musl-edge.tar.gz` - Linux ARM64 (musl, static) |
| |
| ### Connector plugins |
| - `iggy-connectors-x86_64-unknown-linux-gnu-edge.tar.gz` - Linux x86_64 (glibc) |
| - `iggy-connectors-aarch64-unknown-linux-gnu-edge.tar.gz` - Linux ARM64 (glibc) |
| |
| ## Build info |
| - Server version: ${{ steps.meta.outputs.server_version }} |
| - Commit: ${{ github.sha }} |
| |
| **Not an official ASF release.** Edge builds are for development/testing only. |