mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-05-30 22:44:15 +00:00
CI related changes.
This commit is contained in:
parent
724fb584f7
commit
8e5d7f760a
@ -1,4 +1,5 @@
|
|||||||
.git
|
.git
|
||||||
|
.cargo
|
||||||
**/target
|
**/target
|
||||||
**/node_modules
|
**/node_modules
|
||||||
Dockerfile
|
Dockerfile
|
||||||
|
57
.github/workflows/main.yml
vendored
57
.github/workflows/main.yml
vendored
@ -14,22 +14,53 @@ jobs:
|
|||||||
-
|
-
|
||||||
name: Checkout
|
name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
-
|
|
||||||
name: Cargo cache
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
.cargo/registry/index/
|
|
||||||
.cargo/registry/cache/
|
|
||||||
.cargo/git/db/
|
|
||||||
target/
|
|
||||||
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }}
|
|
||||||
|
|
||||||
-
|
-
|
||||||
name: Build UI
|
name: Build UI
|
||||||
run: make build-ui
|
run: make build-ui
|
||||||
|
|
||||||
-
|
-
|
||||||
name: Run tests
|
name: Run tests
|
||||||
run: make test
|
run: make test
|
||||||
|
|
||||||
|
docker:
|
||||||
|
needs: tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: startsWith(github.ref, 'refs/tags/v')
|
||||||
|
steps:
|
||||||
|
-
|
||||||
|
name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
-
|
||||||
|
name: Docker meta
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@v3
|
||||||
|
with:
|
||||||
|
images: |
|
||||||
|
chirpstack/${{ github.event.repository.name }}
|
||||||
|
tags: |
|
||||||
|
type=semver,pattern={{version}}
|
||||||
|
type=semver,pattern={{major}}
|
||||||
|
type=semver,pattern={{major}}.{{minor}}
|
||||||
|
-
|
||||||
|
name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
-
|
||||||
|
name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
-
|
||||||
|
name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
-
|
||||||
|
name: Build and push
|
||||||
|
id: docker_build
|
||||||
|
uses: docker/build-push-action@v2
|
||||||
|
with:
|
||||||
|
platforms: linux/amd64
|
||||||
|
push: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
||||||
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
|
-
|
||||||
|
name: Image digest
|
||||||
|
run: echo ${{ steps.docker_build.outputs.digest }}
|
||||||
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -20,3 +20,7 @@
|
|||||||
|
|
||||||
# Bitbake recipes
|
# Bitbake recipes
|
||||||
*.bb
|
*.bb
|
||||||
|
|
||||||
|
# Exclude from gitignore
|
||||||
|
!/chirpstack/.rpm
|
||||||
|
!/.github
|
||||||
|
7
Cargo.lock
generated
7
Cargo.lock
generated
@ -838,6 +838,7 @@ dependencies = [
|
|||||||
"pbjson-types",
|
"pbjson-types",
|
||||||
"pbkdf2",
|
"pbkdf2",
|
||||||
"petgraph 0.6.0",
|
"petgraph 0.6.0",
|
||||||
|
"pq-sys",
|
||||||
"prost",
|
"prost",
|
||||||
"prost-types",
|
"prost-types",
|
||||||
"r2d2",
|
"r2d2",
|
||||||
@ -1902,8 +1903,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jsonwebtoken"
|
name = "jsonwebtoken"
|
||||||
version = "8.0.1"
|
version = "8.1.0"
|
||||||
source = "git+https://github.com/brocaar/jsonwebtoken.git?branch=fix-issue-190#9679d23195c5c5f93e3cba595c4a582b6ee98d44"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cc9051c17f81bae79440afa041b3a278e1de71bfb96d32454b477fd4703ccb6f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64",
|
"base64",
|
||||||
"pem",
|
"pem",
|
||||||
@ -2668,6 +2670,7 @@ version = "0.4.6"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6ac25eee5a0582f45a67e837e350d784e7003bd29a5f460796772061ca49ffda"
|
checksum = "6ac25eee5a0582f45a67e837e350d784e7003bd29a5f460796772061ca49ffda"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"pkg-config",
|
||||||
"vcpkg",
|
"vcpkg",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
32
Dockerfile
32
Dockerfile
@ -1,26 +1,24 @@
|
|||||||
FROM rust:1.59.0-alpine as development
|
FROM chirpstack/chirpstack-dev-cache:latest AS development
|
||||||
|
|
||||||
ENV PROJECT_PATH=/chirpstack
|
|
||||||
|
|
||||||
# See: https://github.com/diesel-rs/diesel/issues/700
|
|
||||||
ENV RUSTFLAGS="-C target-feature=-crt-static"
|
|
||||||
|
|
||||||
RUN apk --no-cache add \
|
|
||||||
make cmake build-base clang perl protobuf libpq-dev \
|
|
||||||
nodejs npm yarn
|
|
||||||
|
|
||||||
RUN rustup component add rustfmt
|
|
||||||
|
|
||||||
RUN mkdir -p $PROJECT_PATH
|
|
||||||
COPY . $PROJECT_PATH
|
COPY . $PROJECT_PATH
|
||||||
|
|
||||||
RUN cd $PROJECT_PATH/ui && yarn install && yarn build
|
# --network-timeout as yarn throws a ESOCKETTIMEDOUT timeout with GitHub Actions
|
||||||
|
RUN cd $PROJECT_PATH/ui && \
|
||||||
|
yarn install --network-timeout 600000 && \
|
||||||
|
yarn build && \
|
||||||
|
rm -rf node_modules
|
||||||
|
|
||||||
RUN cd $PROJECT_PATH/chirpstack && cargo build --release
|
RUN cd $PROJECT_PATH/chirpstack && cargo build --release
|
||||||
|
|
||||||
FROM alpine:3.15.0 as production
|
FROM debian:buster-slim as production
|
||||||
|
|
||||||
run apk --no-cache add ca-certificates tzdata libpq
|
RUN apt-get update && \
|
||||||
COPY --from=development /chirpstack/target/release/chirpstack /usr/bin/chirpstack
|
apt-get install -y \
|
||||||
|
ca-certificates \
|
||||||
|
libpq5 \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
COPY --from=development /target/release/chirpstack /usr/bin/chirpstack
|
||||||
COPY --from=development /chirpstack/chirpstack/configuration/* /etc/chirpstack/
|
COPY --from=development /chirpstack/chirpstack/configuration/* /etc/chirpstack/
|
||||||
USER nobody:nogroup
|
USER nobody:nogroup
|
||||||
ENTRYPOINT ["/usr/bin/chirpstack"]
|
ENTRYPOINT ["/usr/bin/chirpstack"]
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
FROM rust:1.59.0-buster
|
FROM rust:1.59.0-buster
|
||||||
|
|
||||||
ENV PROJECT_PATH=/chirpstack
|
ENV PROJECT_PATH=/chirpstack
|
||||||
|
ENV CARGO_TARGET_DIR=/target
|
||||||
|
|
||||||
|
RUN mkdir -p $PROJECT_PATH
|
||||||
|
RUN mkdir -p $CARGO_TARGET_DIR
|
||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
@ -10,22 +14,24 @@ RUN apt-get update && \
|
|||||||
bash \
|
bash \
|
||||||
screen \
|
screen \
|
||||||
postgresql-client \
|
postgresql-client \
|
||||||
|
libpq-dev \
|
||||||
mosquitto-clients \
|
mosquitto-clients \
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rpm \
|
rpm \
|
||||||
clang \
|
clang \
|
||||||
gcc-arm-linux-gnueabi \
|
yarnpkg \
|
||||||
g++-arm-linux-gnueabi \
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
gcc-arm-linux-gnueabihf \
|
|
||||||
g++-arm-linux-gnueabihf \
|
RUN ln -s /usr/bin/yarnpkg /usr/bin/yarn
|
||||||
gcc-aarch64-linux-gnu \
|
|
||||||
g++-aarch64-linux-gnu \
|
|
||||||
&& apt-get clean
|
|
||||||
|
|
||||||
RUN rustup component add rustfmt clippy
|
RUN rustup component add rustfmt clippy
|
||||||
|
|
||||||
RUN cargo install diesel_cli --no-default-features --features postgres
|
RUN cargo install diesel_cli --no-default-features --features postgres
|
||||||
RUN cargo install cargo-deb
|
RUN cargo install cargo-deb
|
||||||
RUN cargo install cargo-rpm
|
RUN cargo install cargo-rpm
|
||||||
|
|
||||||
RUN mkdir -p $PROJECT_PATH
|
COPY . $PROJECT_PATH
|
||||||
|
|
||||||
WORKDIR $PROJECT_PATH/chirpstack
|
WORKDIR $PROJECT_PATH/chirpstack
|
||||||
|
RUN cargo build --release
|
||||||
|
RUN rm -rf $PROJECT_PATH/*
|
9
Makefile
9
Makefile
@ -1,10 +1,9 @@
|
|||||||
.PHONY: build-development build-release build-ui devshell devshell-ui test test-server update-images
|
|
||||||
|
|
||||||
# Builds a debug / development binary.
|
# Builds a debug / development binary.
|
||||||
build-debug: build-ui
|
build-debug:
|
||||||
docker-compose run --rm chirpstack make debug
|
docker-compose run --rm chirpstack make debug
|
||||||
|
|
||||||
build-release: build-ui
|
# Builds a release binary.
|
||||||
|
build-release:
|
||||||
docker-compose run --rm chirpstack make release
|
docker-compose run --rm chirpstack make release
|
||||||
|
|
||||||
# Builds the UI.
|
# Builds the UI.
|
||||||
@ -30,5 +29,5 @@ test-server: build-ui
|
|||||||
|
|
||||||
# Update the Docker development images
|
# Update the Docker development images
|
||||||
update-images:
|
update-images:
|
||||||
docker-compose build chirpstack
|
docker-compose pull chirpstack
|
||||||
docker-compose build chirpstack-ui
|
docker-compose build chirpstack-ui
|
||||||
|
@ -27,6 +27,7 @@ diesel_migrations = { version = "1.4" }
|
|||||||
r2d2 = "0.8"
|
r2d2 = "0.8"
|
||||||
bigdecimal = "0.1.2"
|
bigdecimal = "0.1.2"
|
||||||
redis = { version = "0.21", features = ["r2d2", "cluster"] }
|
redis = { version = "0.21", features = ["r2d2", "cluster"] }
|
||||||
|
pq-sys = { version = "0.4.6", features = ["pkg-config"] }
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
tracing = "0.1"
|
tracing = "0.1"
|
||||||
@ -79,7 +80,7 @@ anyhow = "1.0"
|
|||||||
pbkdf2 = "0.8"
|
pbkdf2 = "0.8"
|
||||||
rand_core = { version = "0.6", features = ["std"] }
|
rand_core = { version = "0.6", features = ["std"] }
|
||||||
# jsonwebtoken = "8.0"
|
# jsonwebtoken = "8.0"
|
||||||
jsonwebtoken = { git = "https://github.com/brocaar/jsonwebtoken.git", branch = "fix-issue-190" }
|
jsonwebtoken = "8.1.0"
|
||||||
openssl = { version = "0.10", features = ["vendored"] }
|
openssl = { version = "0.10", features = ["vendored"] }
|
||||||
openidconnect = { version = "2.2.0", features = ["accept-rfc3339-timestamps"] }
|
openidconnect = { version = "2.2.0", features = ["accept-rfc3339-timestamps"] }
|
||||||
|
|
||||||
|
@ -6,17 +6,8 @@ debug:
|
|||||||
release:
|
release:
|
||||||
cargo build --release
|
cargo build --release
|
||||||
|
|
||||||
release-deb-x86-64:
|
release-deb:
|
||||||
cargo deb --target x86_64-unknown-linux-gnu
|
cargo deb
|
||||||
|
|
||||||
release-deb-arm:
|
|
||||||
cargo deb --target arm-unknown-linux-gnueabi
|
|
||||||
|
|
||||||
release-deb-armv7:
|
|
||||||
cargo deb --garget armv7-unknown-linux-gnueabihf
|
|
||||||
|
|
||||||
release-deb-arm64:
|
|
||||||
cargo deb --target aarch64-unknown-linux-gnu
|
|
||||||
|
|
||||||
test:
|
test:
|
||||||
cargo fmt --check
|
cargo fmt --check
|
||||||
|
@ -1,13 +1,8 @@
|
|||||||
version: "3"
|
|
||||||
services:
|
services:
|
||||||
chirpstack:
|
chirpstack:
|
||||||
build:
|
image: chirpstack/chirpstack-dev-cache:latest
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile-devel
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./:/chirpstack
|
- ./:/chirpstack
|
||||||
- ./.cargo/registry:/usr/local/cargo/registry
|
|
||||||
- ./.cargo/git:/usr/local/cargo/git
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- postgres
|
- postgres
|
||||||
- redis
|
- redis
|
||||||
|
Loading…
x
Reference in New Issue
Block a user