-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2 from sdr-enthusiasts/web-docker-and-first-on-th…
…e-fly-config docker and some new structure
- Loading branch information
Showing
39 changed files
with
1,916 additions
and
216 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
--- | ||
name: Linting (Markdown) | ||
|
||
on: | ||
pull_request: | ||
branches: | ||
- main | ||
# only run these if markdown files are updated | ||
paths: | ||
- "**.md" | ||
- "**.MD" | ||
|
||
jobs: | ||
markdownlint: | ||
name: Run markdownlint against markdown files | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/[email protected] | ||
- name: Pull markdownlint/markdownlint:latest Image | ||
run: docker pull markdownlint/markdownlint:latest | ||
- name: Run markdownlint against *.md files | ||
run: docker run --rm -i -v "$(pwd)":/workdir --workdir /workdir markdownlint/markdownlint:latest --rules ~MD013,~MD033,~MD026,~MD002,~MD022,~MD007 $(find . -type f -iname '*.md' | grep -v '/.git/') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,261 @@ | ||
--- | ||
name: Pull Request | ||
|
||
on: | ||
# Enable manual running of action if necessary | ||
workflow_dispatch: | ||
# Build and test deployment the image on pushes to main branch | ||
pull_request: | ||
# # Only publish on push to main branch | ||
# branches: | ||
# - main | ||
# Only run if the PR yaml, Dockerfile, sh, py or rs files have changed | ||
paths: | ||
- Dockerfile** | ||
- "**on_pr.yaml" | ||
- "**.py" | ||
- "**.rs" | ||
- "**.sh" | ||
- "**.toml" | ||
|
||
jobs: | ||
check: | ||
name: Check | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/[email protected] | ||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: minimal | ||
toolchain: stable | ||
override: true | ||
- uses: actions-rs/cargo@v1 | ||
with: | ||
command: check | ||
|
||
fmt: | ||
name: Rustfmt | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/[email protected] | ||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: minimal | ||
toolchain: stable | ||
override: true | ||
- run: rustup component add rustfmt | ||
- uses: actions-rs/cargo@v1 | ||
with: | ||
command: fmt | ||
args: --all -- --check | ||
|
||
clippy: | ||
name: Clippy | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/[email protected] | ||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
components: clippy | ||
override: true | ||
- uses: actions-rs/clippy-check@v1 | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
args: --all-features | ||
name: Clippy Output | ||
|
||
hadolint: | ||
name: "Linting: hadolint" | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/[email protected] | ||
- name: Pull hadolint/hadolint:latest Image | ||
run: docker pull hadolint/hadolint:latest | ||
- name: Run hadolint against Dockerfiles | ||
run: docker run --rm -i -v "$PWD":/workdir --workdir /workdir --entrypoint hadolint hadolint/hadolint --ignore DL3013 --ignore DL3008 $(find . -type f -iname "Dockerfile*") | ||
|
||
test_rust_functionality: | ||
name: Build and test rust functionality | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Install Rust and deps | ||
run: | | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | ||
sudo apt-get update | ||
sudo apt-get install -y --no-install-recommends libzmq3-dev | ||
- name: Get binary version from Cargo.toml | ||
id: release_version | ||
run: | | ||
# Get version from Cargo.toml | ||
RELEASE_VERSION=$(cat ./rust/bin/sdre-hub/Cargo.toml | grep '\[package\]' -A9999 | grep -m 1 'version = ' | tr -d " " | tr -d '"' | tr -d "'" | cut -d = -f 2) | ||
echo "$RELEASE_VERSION" | ||
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 | ||
|
||
- 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: sdre-hub:armv7 | ||
platforms: linux/arm/v7 | ||
outputs: type=local,dest=./image_armv7/ | ||
|
||
- name: Upload artifact armv7 binary | ||
uses: actions/[email protected] | ||
with: | ||
name: sdre-hub.armv7 | ||
path: ./image_armv7/sdre-hub | ||
|
||
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 | ||
|
||
- 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: sdre-hub:arm64 | ||
platforms: linux/arm64 | ||
outputs: type=local,dest=./image_arm64/ | ||
|
||
- name: Upload artifact arm64 binary | ||
uses: actions/[email protected] | ||
with: | ||
name: sdre-hub.arm64 | ||
path: ./image_arm64/sdre-hub | ||
|
||
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 | ||
|
||
- 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: sdre-hub:amd64 | ||
platforms: linux/amd64 | ||
outputs: type=local,dest=./image_amd64/ | ||
|
||
- name: Upload artifact amd64 binary | ||
uses: actions/[email protected] | ||
with: | ||
name: sdre-hub.amd64 | ||
path: ./image_amd64/sdre-hub | ||
|
||
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: sdre-hub.amd64 | ||
path: ./bin/sdre-hub.amd64 | ||
|
||
- uses: actions/[email protected] | ||
with: | ||
name: sdre-hub.armv7 | ||
path: ./bin/sdre-hub.armv7 | ||
|
||
- uses: actions/[email protected] | ||
with: | ||
name: sdre-hub.arm64 | ||
path: ./bin/sdre-hub.arm64 | ||
|
||
- run: ls -la ./bin/* | ||
|
||
- name: Cache Binaries | ||
uses: actions/cache@v4 | ||
with: | ||
path: ./bin/ | ||
key: ${{ github.run_id }} | ||
|
||
test_docker_image_build: | ||
name: Test Docker Image Build | ||
needs: [hadolint, consolidate_binaries, test_rust_functionality] | ||
uses: sdr-enthusiasts/common-github-workflows/.github/workflows/build_and_push_image.yml@main | ||
with: | ||
get_version_method: cargo_toml_file_in_repo:file=/Cargo.toml | ||
build_with_tmpfs: true | ||
build_nohealthcheck: false | ||
cache_enabled: true | ||
cache_path: ./bin/ | ||
cache_key: ${{ github.run_id }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
--- | ||
name: Linting (YAML) | ||
|
||
on: | ||
pull_request: | ||
branches: | ||
- main | ||
# only run when yaml files are updated | ||
paths: | ||
- "**.yml" | ||
- "**.yaml" | ||
|
||
jobs: | ||
yamllint: | ||
name: Run yamllint against YAML files | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/[email protected] | ||
- name: yaml-lint | ||
uses: ibiqlik/action-yamllint@v3 | ||
with: | ||
config_data: | | ||
extends: default | ||
rules: | ||
line-length: | ||
max: 120 | ||
level: warning |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.