1
0
Fork 0
mirror of https://github.com/sdr-enthusiasts/docker-adsb-ultrafeeder.git synced 2024-11-21 21:30:11 +00:00

Use pipe fail, quote array expansion and prevent word globbing (#96)

The previous PRs failed to build because hadolint was mad. I think this
fixes the problem but I'm curious about unintended side affects.
This commit is contained in:
Fred Clausen 2024-06-02 00:59:00 -06:00 committed by GitHub
commit 311e562dbf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 94 additions and 6 deletions

88
.github/workflows/on_pr.yml vendored Normal file
View file

@ -0,0 +1,88 @@
---
name: Pull Request
on:
pull_request:
branches:
- main
push:
branches:
- main
# Don't trigger if it's just a documentation update
paths:
- "rust/**"
- "Dockerfile"
- "Dockerfile.build_binary"
- "rootfs/**"
- "downloads/**"
- ".env"
# 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-adsb-ultrafeeder
GHCR_REGISTRY: ghcr.io
GH_LABEL: main
GHCR_TAG: latest
jobs:
hadolint:
name: Run hadolint against docker files
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.6
- 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:
name: Deploy without telegraf
uses: sdr-enthusiasts/common-github-workflows/.github/workflows/build_and_push_image.yml@main
with:
push_enabled: false
push_destinations: ghcr.io
ghcr_repo_owner: ${{ github.repository_owner }}
ghcr_repo: ${{ github.repository }}
get_version_method: file_in_container:file=/CONTAINER_VERSION
# set build_latest to true if github.event.inputs.use_test_image is false
build_latest: true
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: docker-tar1090:latest/docker-tar1090:baseimage-test
secrets:
ghcr_token: ${{ secrets.GITHUB_TOKEN }}
# unfortunately we can't use build_and_push_image.yml to build the telegraf label because
# that GH Action doesn't have the capability to build specific custom-named labels
deploy_with_telegraf:
name: Deploy with telegraf and healthcheck
uses: sdr-enthusiasts/common-github-workflows/.github/workflows/build_and_push_image.yml@main
with:
push_enabled: false
push_destinations: ghcr.io
ghcr_repo_owner: ${{ github.repository_owner }}
ghcr_repo: ${{ github.repository }}
get_version_method: file_in_container:file=/CONTAINER_VERSION
# set build_latest to true if github.event.inputs.use_test_image is false
build_latest: true
build_baseimage_test: false
build_baseimage_url: docker-tar1090:telegraf/docker-tar1090:telegraf-baseimage-test
# only build the entire stack if we are not using the test image
build_version_specific: false
build_platform_specific: false
build_nohealthcheck: false
docker_latest_tag: telegraf
dockerfile_changes: |
docker-tar1090:latest/docker-tar1090:telegraf
secrets:
ghcr_token: ${{ secrets.GITHUB_TOKEN }}

View file

@ -6,8 +6,8 @@ ENV URL_MLAT_CLIENT_REPO="https://github.com/wiedehopf/mlat-client.git" \
PRIVATE_MLAT="false" \ PRIVATE_MLAT="false" \
MLAT_INPUT_TYPE="auto" MLAT_INPUT_TYPE="auto"
RUN set -x && \ SHELL ["/bin/bash", "-x", "-o", "pipefail", "-c"]
TEMP_PACKAGES=() && \ RUN TEMP_PACKAGES=() && \
KEPT_PACKAGES=() && \ KEPT_PACKAGES=() && \
# Git and net-tools are needed to install and run @Mikenye's HealthCheck framework # Git and net-tools are needed to install and run @Mikenye's HealthCheck framework
KEPT_PACKAGES+=(git) && \ KEPT_PACKAGES+=(git) && \
@ -31,8 +31,8 @@ RUN set -x && \
# Install all these packages: # Install all these packages:
apt-get update -q -y && \ apt-get update -q -y && \
apt-get install -o Dpkg::Options::="--force-confnew" -y --no-install-recommends -q \ apt-get install -o Dpkg::Options::="--force-confnew" -y --no-install-recommends -q \
${KEPT_PACKAGES[@]} \ "${KEPT_PACKAGES[@]}" \
${TEMP_PACKAGES[@]} && \ "${TEMP_PACKAGES[@]}" && \
# #
# Compile and Install the mlat_client # Compile and Install the mlat_client
mkdir -p /git && \ mkdir -p /git && \
@ -45,7 +45,7 @@ RUN set -x && \
rm -rf /git && \ rm -rf /git && \
# #
# Clean up and install POST_PACKAGES: # Clean up and install POST_PACKAGES:
apt-get remove -q -y ${TEMP_PACKAGES[@]} && \ apt-get remove -q -y "${TEMP_PACKAGES[@]}" && \
# apt-get install -o Dpkg::Options::="--force-confnew" -y --no-install-recommends -q \ # apt-get install -o Dpkg::Options::="--force-confnew" -y --no-install-recommends -q \
# ${POST_PACKAGES[@]} && \ # ${POST_PACKAGES[@]} && \
apt-get autoremove -q -o APT::Autoremove::RecommendsImportant=0 -o APT::Autoremove::SuggestsImportant=0 -y && \ apt-get autoremove -q -o APT::Autoremove::RecommendsImportant=0 -o APT::Autoremove::SuggestsImportant=0 -y && \
@ -63,7 +63,7 @@ COPY rootfs/ /
RUN set -x && \ RUN set -x && \
branch="##BRANCH##" && \ branch="##BRANCH##" && \
[[ "${branch:0:1}" == "#" ]] && branch="main" || true && \ [[ "${branch:0:1}" == "#" ]] && branch="main" || true && \
git clone --depth=1 -b $branch https://github.com/sdr-enthusiasts/docker-adsb-ultrafeeder.git /tmp/clone && \ git clone --depth=1 -b "$branch" https://github.com/sdr-enthusiasts/docker-adsb-ultrafeeder.git /tmp/clone && \
pushd /tmp/clone && \ pushd /tmp/clone && \
echo "$(TZ=UTC date +%Y%m%d-%H%M%S)_$(git rev-parse --short HEAD)_$(git branch --show-current)" > /.CONTAINER_VERSION && \ echo "$(TZ=UTC date +%Y%m%d-%H%M%S)_$(git rev-parse --short HEAD)_$(git branch --show-current)" > /.CONTAINER_VERSION && \
popd && \ popd && \