Newer
Older
netbox-docker / .github / workflows / push.yml
@Tobias Genannt Tobias Genannt on 27 Mar 2024 2 KB Avoid duplicate checks for Renovate PRs
---
name: push

on:
  push:
    branches-ignore:
      - release
      - renovate/**
  pull_request:
    branches-ignore:
      - release

jobs:
  lint:
    runs-on: ubuntu-latest
    name: Checks syntax of our code
    steps:
      - uses: actions/checkout@v4
        with:
          # Full git history is needed to get a proper
          # list of changed files within `super-linter`
          fetch-depth: 0
      - uses: actions/setup-python@v5
        with:
          python-version: '3.9'
      - name: Lint Code Base
        uses: github/super-linter@v5
        env:
          DEFAULT_BRANCH: develop
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          SUPPRESS_POSSUM: true
          LINTER_RULES_PATH: /
          VALIDATE_ALL_CODEBASE: false
          VALIDATE_DOCKERFILE: false
          VALIDATE_GITLEAKS: false
          FILTER_REGEX_EXCLUDE: (.*/)?(LICENSE|configuration/.*)
          EDITORCONFIG_FILE_NAME: .ecrc
          DOCKERFILE_HADOLINT_FILE_NAME: .hadolint.yaml
          MARKDOWN_CONFIG_FILE: .markdown-lint.yml
          PYTHON_BLACK_CONFIG_FILE: pyproject.toml
          PYTHON_FLAKE8_CONFIG_FILE: .flake8
          PYTHON_ISORT_CONFIG_FILE: pyproject.toml
          YAML_CONFIG_FILE: .yamllint.yaml
  build:
    continue-on-error: ${{ matrix.build_cmd != './build-latest.sh' }}
    strategy:
      matrix:
        build_cmd:
          - ./build-latest.sh
          - PRERELEASE=true ./build-latest.sh
          - ./build.sh feature
          - ./build.sh develop
        os:
          - ubuntu-latest
          - self-hosted
      fail-fast: false
    env:
      GH_ACTION: enable
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      IMAGE_NAMES: docker.io/netboxcommunity/netbox
    runs-on: ${{ matrix.os }}
    name: Builds new NetBox Docker Images
    steps:
      - id: git-checkout
        name: Checkout
        uses: actions/checkout@v4
      - id: buildx-setup
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
      - id: arm-buildx-platform
        name: Set BUILDX_PLATFORM to ARM64
        if: matrix.os == 'self-hosted'
        run: |
          echo "BUILDX_PLATFORM=linux/arm64" >>"${GITHUB_ENV}"
      - id: docker-build
        name: Build the image for '${{ matrix.os }}' with '${{ matrix.build_cmd }}'
        run: ${{ matrix.build_cmd }}
        env:
          BUILDX_BUILDER_NAME: ${{ steps.buildx-setup.outputs.name }}
      - id: arm-time-limit
        name: Set Netbox container start_period higher on ARM64
        if: matrix.os == 'self-hosted'
        run: |
          echo "NETBOX_START_PERIOD=240s" >>"${GITHUB_ENV}"
      - id: docker-test
        name: Test the image
        run: IMAGE="${FINAL_DOCKER_TAG}" ./test.sh
        if: steps.docker-build.outputs.skipped != 'true'