--- name: Deploy on: workflow_dispatch: inputs: reason: required: false description: "Reason for running this workflow" use_test_image: required: false type: boolean description: "Use base image testpr" default: false 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: 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 }} INPUTS_USE_TEST_IMAGE: ${{ github.event.inputs.use_test_image }} run: | echo "Workflow dispatch reason: $INPUTS_REASON" echo "Use test image: $INPUTS_USE_TEST_IMAGE" hadolint: name: Run hadolint against docker files runs-on: ubuntu-latest steps: - uses: actions/checkout@v4.2.0 - 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: true 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: ${{ github.event.inputs.use_test_image == 'false' || github.event.inputs.use_test_image == '' }} 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: 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: true 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: ${{ github.event.inputs.use_test_image == 'false' || github.event.inputs.use_test_image == '' }} build_baseimage_test: ${{ github.event.inputs.use_test_image == 'true' }} 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 }}