mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-04-08 03:44:19 +00:00
Implement building distributable binaries in ci workflow.
This commit is contained in:
parent
100e9f1b6d
commit
1e6aad326c
34
.github/workflows/main.yml
vendored
34
.github/workflows/main.yml
vendored
@ -21,6 +21,38 @@ jobs:
|
||||
name: Run tests
|
||||
run: make test
|
||||
|
||||
dist:
|
||||
needs: tests
|
||||
runs-on: ubuntu-latest
|
||||
if: startsWith(github.ref, 'refs/tags/v')
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
-
|
||||
name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
-
|
||||
name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
-
|
||||
name: Build UI
|
||||
run: make build-ui
|
||||
-
|
||||
name: Build distributables
|
||||
run: make dist
|
||||
-
|
||||
name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: eu-west-1
|
||||
-
|
||||
name: Upload binaries to S3
|
||||
run: |
|
||||
aws s3 sync dist s3://builds.loraserver.io/chirpstack
|
||||
|
||||
docker:
|
||||
needs: tests
|
||||
runs-on: ubuntu-latest
|
||||
@ -57,7 +89,7 @@ jobs:
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
platforms: linux/amd64
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,5 +1,6 @@
|
||||
# hidden files
|
||||
.*
|
||||
!/chirpstack/.rpm
|
||||
|
||||
# Log files
|
||||
*.log
|
||||
|
3
Makefile
3
Makefile
@ -10,7 +10,8 @@ build-release:
|
||||
|
||||
# Build distributable binaries.
|
||||
dist:
|
||||
docker-compose run --rm chirpstack make dist
|
||||
docker-compose run --rm chirpstack-build-amd64 make dist
|
||||
docker-compose run --rm chirpstack-build-arm64 make dist
|
||||
|
||||
# Builds the UI.
|
||||
build-ui:
|
||||
|
@ -122,7 +122,6 @@ systemd-units = { enable = true }
|
||||
|
||||
[package.metadata.rpm]
|
||||
package = "chirpstack"
|
||||
config = "rpm"
|
||||
|
||||
[package.metadata.rpm.files]
|
||||
"configuration/" = { path = "/etc/chirpstack/" }
|
||||
|
@ -12,16 +12,17 @@ release:
|
||||
dist: release-deb release-rpm release-targz
|
||||
|
||||
release-deb:
|
||||
mkdir -p /chirpstack/dist/deb
|
||||
mkdir -p /chirpstack/dist
|
||||
cargo deb
|
||||
cp /target/debian/*.deb /chirpstack/dist/deb
|
||||
cp /target/debian/*.deb /chirpstack/dist
|
||||
|
||||
release-rpm:
|
||||
mkdir -p /chirpstack/dist/rpm
|
||||
mkdir -p /chirpstack/dist
|
||||
cargo rpm build
|
||||
find /target/release/rpmbuild/RPMS -type f -exec cp {} /chirpstack/dist/rpm \;
|
||||
find /target/release/rpmbuild/RPMS -type f -exec cp {} /chirpstack/dist \;
|
||||
|
||||
release-targz:
|
||||
mkdir -p /chirpstack/dist
|
||||
tar -czvf /chirpstack/dist/chirpstack_$(PKG_VERSION)_$(TARGET_ARCH).tar.gz -C /target/release chirpstack
|
||||
|
||||
test:
|
||||
|
@ -1,6 +1,7 @@
|
||||
services:
|
||||
chirpstack:
|
||||
image: chirpstack/chirpstack-dev-cache:latest
|
||||
platform: linux/amd64
|
||||
volumes:
|
||||
- ./:/chirpstack
|
||||
depends_on:
|
||||
@ -15,6 +16,18 @@ services:
|
||||
ports:
|
||||
- "8080:8080"
|
||||
|
||||
chirpstack-build-amd64:
|
||||
image: chirpstack/chirpstack-dev-cache:latest
|
||||
platform: linux/amd64
|
||||
volumes:
|
||||
- ./:/chirpstack
|
||||
|
||||
chirpstack-build-arm64:
|
||||
image: chirpstack/chirpstack-dev-cache:latest
|
||||
platform: linux/arm64
|
||||
volumes:
|
||||
- ./:/chirpstack
|
||||
|
||||
chirpstack-ui:
|
||||
build:
|
||||
context: ./ui
|
||||
|
Loading…
x
Reference in New Issue
Block a user