Skip to content

Commit

Permalink
Merge pull request #25 from sdr-enthusiasts/acars-bridge
Browse files Browse the repository at this point in the history
Acars bridge
  • Loading branch information
fredclausen authored Jan 20, 2024
2 parents 14fe47d + 9ae0871 commit 3de4120
Show file tree
Hide file tree
Showing 30 changed files with 592 additions and 138 deletions.
196 changes: 193 additions & 3 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ on:
type: boolean
description: "Use base image testpr"
default: false
build_latest_as_test:
required: false
type: boolean
description: "Build latest as test"
default: false

# Build and deploy the image on pushes to main branch
push:
Expand All @@ -23,9 +28,6 @@ on:
- "Dockerfile.build_binary"
- "rootfs/**"

# Build and deploy the image nightly (to ensure we pick up any security updates)
# schedule:
# - cron: "0 14 * * *"
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
Expand All @@ -47,8 +49,164 @@ jobs:
run: |
echo "Workflow dispatch reason: $INPUTS_REASON"
echo "Use test image: $INPUTS_USE_TEST_IMAGE"
binary_build_armv7:
name: Build Binary - armv7
runs-on: ubuntu-latest
# needs: test_rust_functionality

steps:
- name: Checkout
uses: actions/[email protected]
with:
fetch-depth: 0
repository: sdr-enthusiasts/acars-bridge

- name: Run Docker on tmpfs
uses: JonasAlfredsson/docker-on-tmpfs@v1
with:
tmpfs_size: 5
swap_size: 4
swap_location: "/mnt/swapfile"

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build armv7
uses: docker/build-push-action@v5
with:
context: .
push: false
file: Dockerfile.build_binary
tags: acars-bridge:armv7
platforms: linux/arm/v7
outputs: type=local,dest=./image_armv7/

- name: Upload artifact armv7 binary
uses: actions/[email protected]
with:
name: acars-bridge.armv7
path: ./image_armv7/acars-bridge

binary_build_arm64:
name: Build Binary - arm64
runs-on: ubuntu-latest
# needs: test_rust_functionality

steps:
- name: Checkout
uses: actions/[email protected]
with:
fetch-depth: 0
repository: sdr-enthusiasts/acars-bridge

- name: Run Docker on tmpfs
uses: JonasAlfredsson/docker-on-tmpfs@v1
with:
tmpfs_size: 5
swap_size: 4
swap_location: "/mnt/swapfile"

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build arm64
uses: docker/build-push-action@v5
with:
context: .
push: false
file: Dockerfile.build_binary
tags: acars-bridge:arm64
platforms: linux/arm64
outputs: type=local,dest=./image_arm64/

- name: Upload artifact arm64 binary
uses: actions/[email protected]
with:
name: acars-bridge.arm64
path: ./image_arm64/acars-bridge

binary_build_amd64:
name: Build Binary - amd64
runs-on: ubuntu-latest
# needs: test_rust_functionality

steps:
- name: Checkout
uses: actions/[email protected]
with:
fetch-depth: 0
repository: sdr-enthusiasts/acars-bridge

- name: Run Docker on tmpfs
uses: JonasAlfredsson/docker-on-tmpfs@v1
with:
tmpfs_size: 5
swap_size: 4
swap_location: "/mnt/swapfile"

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build amd64
uses: docker/build-push-action@v5
with:
context: .
push: false
file: Dockerfile.build_binary
tags: acars-bridge:amd64
platforms: linux/amd64
outputs: type=local,dest=./image_amd64/

- name: Upload artifact amd64 binary
uses: actions/[email protected]
with:
name: acars-bridge.amd64
path: ./image_amd64/acars-bridge

consolidate_binaries:
name: Consolidate & Cache Binaries
runs-on: ubuntu-latest
needs: [binary_build_amd64, binary_build_arm64, binary_build_armv7]
steps:
- run: mkdir -p ./bin

- uses: actions/[email protected]
with:
name: acars-bridge.amd64
path: ./bin/acars-bridge.amd64

- uses: actions/[email protected]
with:
name: acars-bridge.armv7
path: ./bin/acars-bridge.armv7

- uses: actions/[email protected]
with:
name: acars-bridge.arm64
path: ./bin/acars-bridge.arm64

- run: ls -la ./bin/*

- name: Cache Binaries
uses: actions/cache@v3
with:
path: ./bin/
key: ${{ github.run_id }}
build_and_push:
name: Image Build & Push
needs: [consolidate_binaries]
if: |
github.event.inputs.build_latest_as_test == 'false' ||
github.event.inputs.build_latest_as_test == ''
uses: sdr-enthusiasts/common-github-workflows/.github/workflows/build_and_push_image.yml@main
with:
push_enabled: true
Expand All @@ -66,5 +224,37 @@ jobs:
build_platform_specific: ${{ github.event.inputs.use_test_image == 'false' || github.event.inputs.use_test_image == '' }}
build_nohealthcheck: ${{ github.event.inputs.use_test_image == 'false' || github.event.inputs.use_test_image == '' }}
build_baseimage_url: :acars-decoder/:acars-decoder-test-pr
cache_enabled: true
cache_path: ./bin/
cache_key: ${{ github.run_id }}
secrets:
ghcr_token: ${{ secrets.GITHUB_TOKEN }}

deploy_test:
name: Deploy as test
needs: [consolidate_binaries]
if: |
github.event.inputs.build_latest_as_test == 'true' &&
(github.event.inputs.use_test_image == 'false' || github.event.inputs.use_test_image == '')
uses: sdr-enthusiasts/common-github-workflows/.github/workflows/build_and_push_image.yml@main
with:
push_enabled: true
push_destinations: ghcr.io
ghcr_repo_owner: ${{ github.repository_owner }}
ghcr_repo: ${{ github.repository }}
build_with_tmpfs: true
get_version_method: git_commit_hash_short
# set build_latest to true if github.event.inputs.use_test_image is false
build_latest: true
docker_latest_tag: test
build_baseimage_test: false
# only build the entire stack if we are not using the test image
build_version_specific: false
build_platform_specific: false
build_nohealthcheck: false
build_baseimage_url: :acars-decoder/:acars-decoder-test-pr
cache_enabled: true
cache_path: ./bin/
cache_key: ${{ github.run_id }}
secrets:
ghcr_token: ${{ secrets.GITHUB_TOKEN }}
Loading

0 comments on commit 3de4120

Please sign in to comment.