Skip to content

Commit

Permalink
initial acars bridge
Browse files Browse the repository at this point in the history
  • Loading branch information
fredclausen committed Jan 7, 2024
1 parent ca4b1d5 commit 2d8d5b7
Show file tree
Hide file tree
Showing 29 changed files with 625 additions and 145 deletions.
200 changes: 196 additions & 4 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,22 @@ 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:
branches:
- main
paths:
- "rust/**"
- "Dockerfile"
- "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 @@ -45,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/checkout@v4.1.1
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/upload-artifact@v4.0.0
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/checkout@v4.1.1
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/upload-artifact@v4.0.0
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/checkout@v4.1.1
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/upload-artifact@v4.0.0
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/download-artifact@v4.0.0
with:
name: acars-bridge.amd64
path: ./bin/acars-bridge.amd64

- uses: actions/download-artifact@v4.0.0
with:
name: acars-bridge.armv7
path: ./bin/acars-bridge.armv7

- uses: actions/download-artifact@v4.0.0
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 @@ -61,8 +221,40 @@ jobs:
build_baseimage_test: ${{ github.event.inputs.use_test_image == 'true' }}
# only build the entire stack if we are not using the test image
build_version_specific: false
build_platform_specific: ${{ github.event.inputs.use_test_image == 'false' || github.event.inputs.use_test_image == ''}}
build_platform_specific: ${{ github.event.inputs.use_test_image == 'false' || github.event.inputs.use_test_image == '' }}
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 }}

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 2d8d5b7

Please sign in to comment.