Implement building distributable binaries in ci workflow.

This commit is contained in:
Orne Brocaar 2022-04-28 22:57:01 +01:00
parent 100e9f1b6d
commit 1e6aad326c
10 changed files with 54 additions and 7 deletions

View File

@ -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
View File

@ -1,5 +1,6 @@
# hidden files
.*
!/chirpstack/.rpm
# Log files
*.log

View File

@ -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:

View File

@ -122,7 +122,6 @@ systemd-units = { enable = true }
[package.metadata.rpm]
package = "chirpstack"
config = "rpm"
[package.metadata.rpm.files]
"configuration/" = { path = "/etc/chirpstack/" }

View File

@ -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:

View File

@ -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