Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Packaging and publishing #16

Merged
merged 24 commits into from
Sep 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
c75a1af
Merge commit 'bf1f28ab83247ef6068d9aa8ab8722868448cbb1'
yellowhatter Apr 28, 2023
17e253a
Merge commit '8674e0c44b84342ca2bfe9641da53979c111bdcc'
yellowhatter Apr 28, 2023
8e2fca7
Bump version to 0.7.2-rc
OlivierHecart Jun 6, 2023
fae0e5d
Merge branch 'main' into release-0.7.2-rc
OlivierHecart Jun 7, 2023
e579b21
Merge branch 'main' into release-0.7.2-rc [skip ci]
OlivierHecart Jun 7, 2023
7112843
Merge branch 'main' into release-0.7.2-rc [skip ci]
OlivierHecart Jun 7, 2023
60529ec
Merge commit '7112843d5961bcad91cc37c25fdec331f8cf8c25'
yellowhatter Jun 8, 2023
a5579e2
Merge commit '519acc0589180ae043462bc8c23e9b8fb45ee485'
yellowhatter Sep 22, 2023
f1da0f0
switch to 0.10 Zenoh
yellowhatter Sep 25, 2023
f5e4bad
add rosrust as submodule
yellowhatter Sep 25, 2023
4d4903b
Use rosrust from submodule
yellowhatter Sep 25, 2023
da58de4
- fix issue with random tests failing - I just need to wait for Zenoh…
yellowhatter Sep 25, 2023
73824ba
- working on the CI
yellowhatter Sep 26, 2023
e8c4719
Add submodules checkout all over the CI
yellowhatter Sep 26, 2023
2780888
Update ci.yml and release.yml
yellowhatter Sep 26, 2023
1d00bd2
Update ci.yml and release.yml
yellowhatter Sep 26, 2023
12f0328
Update release.yml
yellowhatter Sep 26, 2023
808fdf8
Update release.yml
yellowhatter Sep 26, 2023
ece2ffc
Update release.yml
yellowhatter Sep 26, 2023
6a790b4
Update ci.yml and release.yml
yellowhatter Sep 26, 2023
e6a0c75
- fix clippy warnings without --all-targets
yellowhatter Sep 26, 2023
a69fe1f
Merge pull request #1 from ZettaScaleLabs/check_release_build
yellowhatter Sep 26, 2023
03d619f
- upgrade build system, CI and packaging
yellowhatter Sep 27, 2023
5a157c6
Update CONTRIBUTING.md
yellowhatter Sep 27, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/workflows/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <[email protected]>
#

###
### Dockerfile creating the eclipse/zenoh-bridge-ros1 image from cross-compiled binaries.
### It assumes that zenoh-bridge-ros1 is installed in docker/$TARGETPLATFORM/
### where $TARGETPLATFORM is set by buildx to a Docker supported platform such as linux/amd64 or linux/arm64
### (see https://docs.docker.com/buildx/working-with-buildx/#build-multi-platform-images)
###


FROM alpine:latest

ARG TARGETPLATFORM

RUN apk add --no-cache libgcc libstdc++

COPY docker/$TARGETPLATFORM/zenoh-bridge-ros1 /

RUN echo '#!/bin/ash' > /entrypoint.sh
RUN echo 'echo " * Starting: /zenoh-bridge-ros1 $*"' >> /entrypoint.sh
RUN echo 'exec /zenoh-bridge-ros1 $*' >> /entrypoint.sh
RUN chmod +x /entrypoint.sh

EXPOSE 7446/udp
EXPOSE 7447/tcp
EXPOSE 8000/tcp

ENV RUST_LOG info

ENTRYPOINT ["/entrypoint.sh"]
15 changes: 14 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#
name: CI

on:
on:
push:
branches: ["**"]
pull_request:
Expand All @@ -32,6 +32,8 @@ jobs:

steps:
- uses: actions/checkout@v2
with:
submodules: recursive

- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
Expand All @@ -47,13 +49,22 @@ jobs:
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse

- name: Clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: -- -D warnings
env:
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse

- name: Clippy All targets
uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-targets -- -D warnings
env:
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse


test:
name: Run tests on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
Expand All @@ -64,6 +75,8 @@ jobs:

steps:
- uses: actions/checkout@v2
with:
submodules: recursive

- name: Install latest Rust toolchain
uses: actions-rs/toolchain@v1
Expand Down
94 changes: 50 additions & 44 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
Expand Down Expand Up @@ -137,6 +139,7 @@ jobs:
uses: actions/checkout@v2
with:
fetch-depth: 500 # NOTE: get long history for git-version crate to correctly compute a version
submodules: recursive
- name: Fetch Git tags # NOTE: workaround for https://github.com/actions/checkout/issues/290
shell: bash
run: git fetch --tags --force
Expand Down Expand Up @@ -258,50 +261,51 @@ jobs:
${{ steps.package.outputs.BIN_PKG_NAME }}
${{ steps.package.outputs.DEBS_PKG_NAME }}

# docker-build:
# name: Docker build and push
# needs: [checks, builds]
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# with:
# fetch-depth: 500 # NOTE: get long history for git-version crate to correctly compute a version
# - name: Fetch Git tags # NOTE: workaround for https://github.com/actions/checkout/issues/290
# shell: bash
# run: git fetch --tags --force
# - name: Download packages from previous job
# uses: actions/download-artifact@v2
# with:
# path: PACKAGES
# - name: Unzip PACKAGES
# run: |
# ls PACKAGES
# mkdir -p docker/linux/amd
# unzip PACKAGES/x86_64-unknown-linux-musl/zenoh-bridge-ros1-${{ needs.checks.outputs.PKG_VERSION }}-x86_64-unknown-linux-musl.zip -d docker/linux/amd64/
# mkdir -p docker/linux/arm64
# unzip PACKAGES/aarch64-unknown-linux-musl/zenoh-bridge-ros1-${{ needs.checks.outputs.PKG_VERSION }}-aarch64-unknown-linux-musl.zip -d docker/linux/arm64/
# tree docker
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v1
# - name: Docker meta - set tags and labels
# id: meta
# uses: docker/metadata-action@v3
# with:
# images: eclipse/zenoh-bridge-ros1
# - name: Login to DockerHub
# uses: docker/login-action@v1
# with:
# username: ${{ secrets.DOCKER_COM_USERNAME }}
# password: ${{ secrets.DOCKER_COM_PASSWORD }}
# - name: Build and push
# uses: docker/build-push-action@v2
# with:
# context: .
# platforms: linux/amd64,linux/arm64
# file: .github/workflows/Dockerfile
# push: true
# tags: ${{ steps.meta.outputs.tags }}
# labels: ${{ steps.meta.outputs.labels }}
docker-build:
name: Docker build and push
needs: [checks, builds]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 500 # NOTE: get long history for git-version crate to correctly compute a version
submodules: recursive
- name: Fetch Git tags # NOTE: workaround for https://github.com/actions/checkout/issues/290
shell: bash
run: git fetch --tags --force
- name: Download packages from previous job
uses: actions/download-artifact@v2
with:
path: PACKAGES
- name: Unzip PACKAGES
run: |
ls PACKAGES
mkdir -p docker/linux/amd
unzip PACKAGES/x86_64-unknown-linux-musl/zenoh-bridge-ros1-${{ needs.checks.outputs.PKG_VERSION }}-x86_64-unknown-linux-musl.zip -d docker/linux/amd64/
mkdir -p docker/linux/arm64
unzip PACKAGES/aarch64-unknown-linux-musl/zenoh-bridge-ros1-${{ needs.checks.outputs.PKG_VERSION }}-aarch64-unknown-linux-musl.zip -d docker/linux/arm64/
tree docker
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Docker meta - set tags and labels
id: meta
uses: docker/metadata-action@v3
with:
images: eclipse/zenoh-bridge-ros1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_COM_USERNAME }}
password: ${{ secrets.DOCKER_COM_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
platforms: linux/amd64,linux/arm64
file: .github/workflows/Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

publication:
name: Release publication
Expand Down Expand Up @@ -341,6 +345,8 @@ jobs:
echo "---- cleanup identity"
ssh-add -D
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
- name: Publish to crates.io
Expand Down
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "rosrust"]
path = rosrust
url = [email protected]:ZettaScaleLabs/rosrust.git
branch = feature/fix_bugs
51 changes: 51 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Contributing to Eclipse zenoh

Thanks for your interest in this project.

## Project description

Eclipse zenoh provides is a stack designed to
1. minimize network overhead,
2. support extremely constrained devices,
3. supports devices with low duty-cycle by allowing the negotiation of data exchange modes and schedules,
4. provide a rich set of abstraction for distributing, querying and storing data along the entire system, and
5. provide extremely low latency and high throughput.

* https://projects.eclipse.org/projects/iot.zenoh

## Developer resources

Information regarding source code management, builds, coding standards, and
more.

* https://projects.eclipse.org/projects/iot.zenoh/developer

The project maintains the following source code repositories

* https://github.com/eclipse-zenoh

## Eclipse Contributor Agreement

Before your contribution can be accepted by the project team contributors must
electronically sign the Eclipse Contributor Agreement (ECA).

* http://www.eclipse.org/legal/ECA.php

Commits that are provided by non-committers must have a Signed-off-by field in
the footer indicating that the author is aware of the terms by which the
contribution has been provided to the project. The non-committer must
additionally have an Eclipse Foundation account and must have a signed Eclipse
Contributor Agreement (ECA) on file.

For more information, please see the Eclipse Committer Handbook:
https://www.eclipse.org/projects/handbook/#resources-commit

## Contact

Contact the project developers via the project's "dev" list.

* https://accounts.eclipse.org/mailing-list/zenoh-dev

Or via the Discord server.

* https://discord.gg/vSDSpqnbkm
7 changes: 7 additions & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Contributors to Eclipse zenoh-plugin-ros1

These are the contributors to Eclipse zenoh (the initial contributors and the contributors listed in the Git log).


| GitHub username | Name |
| --------------- | -----------------------------|
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should add your name here :)

Loading