From 0d39d3900c23a5dc00c903cf6b3da7cdf2a7d873 Mon Sep 17 00:00:00 2001 From: kx1t Date: Thu, 2 Mar 2023 10:21:45 -0500 Subject: [PATCH] updates --- .github/workflows/cancel_dupes.yml | 21 +++++ .github/workflows/deploy.yml | 112 ++++++++++++++++++++++++++ .hadolint.yaml | 5 ++ rootfs/etc/services.d/mlat-client/run | 2 +- 4 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/cancel_dupes.yml create mode 100644 .github/workflows/deploy.yml create mode 100644 .hadolint.yaml diff --git a/.github/workflows/cancel_dupes.yml b/.github/workflows/cancel_dupes.yml new file mode 100644 index 0000000..cc24020 --- /dev/null +++ b/.github/workflows/cancel_dupes.yml @@ -0,0 +1,21 @@ +name: Cancelling Duplicates +on: + workflow_run: + workflows: + - 'Deploy to Docker Hub' + - 'Check Linting' + - 'Tests' + types: ['requested'] + +jobs: + cancel-duplicate-workflow-runs: + name: "Cancel duplicate workflow runs" + runs-on: ubuntu-18.04 + steps: + - uses: potiuk/cancel-workflow-runs@master + name: "Cancel duplicate workflow runs" + with: + cancelMode: allDuplicates + token: ${{ secrets.GITHUB_TOKEN }} + sourceRunId: ${{ github.event.workflow_run.id }} + diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..e07331f --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,112 @@ +--- +name: Deploy Main + +on: + workflow_dispatch: + inputs: + reason: + required: false + description: 'Reason for running this workflow' + push: + branches: + - main + # Don't trigger if it's just a documentation update + paths-ignore: + - '**.md' + - '**.MD' + - '**.yml' + - 'LICENSE' + - '.gitattributes' + - '.gitignore' + - '.dockerignore' + +# Set workflow-wide environment variables +# - REPO: repo name on dockerhub +# - IMAGE: image name on dockerhub +env: +# DOCKERHUB_REPO: sdr-enthusiasts +# DOCKERHUB_IMAGE: vrs + GHCR_IMAGE: sdr-enthusiasts/docker-multifeeder + GHCR_REGISTRY: ghcr.io + GH_LABEL: main + GHCR_TAG: latest + +jobs: + + workflow-dispatch: + name: Triggered via Workflow Dispatch? + # only run this step if workflow dispatch triggered + # log the reason the workflow dispatch was triggered + if: | + github.event_name == 'workflow_dispatch' && + github.event.inputs.reason != '' + runs-on: ubuntu-latest + steps: + - name: Log dispatch reason + env: + INPUTS_REASON: ${{ github.event.inputs.reason }} + run: | + echo "Workflow dispatch reason: $INPUTS_REASON" + + hadolint: + name: Run hadolint against docker files + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + ref: {{ env.GH_LABEL }} + - 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 DL3015 --ignore DL3003 --ignore DL3006 --ignore DL3010 --ignore DL4001 --ignore DL3007 --ignore DL3008 --ignore SC2068 --ignore DL3007 --ignore SC1091 --ignore DL3013 --ignore DL3010 $(find . -type f -iname "Dockerfile*") + + deploy_ghcr_multiarch: + name: Deploy ghcr.io (Multi-Arch) + needs: [hadolint] + runs-on: ubuntu-latest + steps: + + # Check out our code + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.GH_LABEL }} + + # Log into ghcr (so we can push images) + - name: Login to ghcr.io + uses: docker/login-action@v2 + with: + registry: ${{ env.GHCR_REGISTRY }} + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + # Get metadata from repo + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: ${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }} + + # Set up QEMU for multi-arch builds + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + # Set up buildx for multi platform builds + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + with: + driver-opts: image=moby/buildkit:v0.10.6 + + # Build "latest" + - name: Build & Push - latest + uses: docker/build-push-action@v3 + with: + context: . + file: ./Dockerfile + no-cache: true + platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/i386 + push: true + tags: ghcr.io/${{ env.GHCR_IMAGE }}:${{ env.GHCR_TAG }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/.hadolint.yaml b/.hadolint.yaml new file mode 100644 index 0000000..be4f781 --- /dev/null +++ b/.hadolint.yaml @@ -0,0 +1,5 @@ +ignored: + - DL3003 + - DL3008 + - SC3054 + - SC3044 \ No newline at end of file diff --git a/rootfs/etc/services.d/mlat-client/run b/rootfs/etc/services.d/mlat-client/run index 0290f80..c8ad48e 100644 --- a/rootfs/etc/services.d/mlat-client/run +++ b/rootfs/etc/services.d/mlat-client/run @@ -42,7 +42,7 @@ fi # MLAT_CONFIG=mlatserver_1,mlatserver_port_1[,results_port_1[,extra_params_1]];mlatserver_2,mlatserver_port_2[,results_port_2[,extra_params_2]] etc # parse MLAT_CONFIG string into mlat_configs array -readarray -td ";" mlat_configs < <(printf '%s' "${MLAT_CONFIG}") +readarray -td ";" mlat_configs < <(printf '%s' "${MLAT_CONFIG// /}") # Now loop through the MLAT_CONFIG items and start up an Mlat_client for each of them: for instance in "${mlat_configs[@]}"