Newer
Older
netbox-docker / .github / workflows / release.yml
@cimnine cimnine on 18 Oct 2021 2 KB Push to ghcr.io
name: release

on:
  release:
    types:
      - published
  schedule:
    - cron: '45 5 * * *'

jobs:
  build:
    strategy:
      matrix:
        build_cmd:
        - ./build-latest.sh
        - PRERELEASE=true ./build-latest.sh
        - ./build.sh feature
        - ./build.sh develop
      fail-fast: false
    runs-on: ubuntu-latest
    name: Builds new NetBox Docker Images
    steps:
    -
      name: Checkout
      uses: actions/checkout@v2
    -
      name: Get Version of NetBox Docker
      run: |
        echo "::set-output name=version::$(cat VERSION)"
      shell: bash
    -
      name: Set up QEMU
      uses: docker/setup-qemu-action@v1
    -
      id: buildx-setup
      name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v1
      with:
        install: true
    -
      name: Available platforms
      run: echo ${{ steps.buildx-setup.outputs.platforms }}
    -
      id: docker-build
      name: Build the image with '${{ matrix.build_cmd }}'
      run: ${{ matrix.build_cmd }}
      env:
        GH_ACTION: enable
    -
      name: Test the image
      run: IMAGE="${FINAL_DOCKER_TAG}" ./test.sh
      if: steps.docker-build.outputs.skipped != 'true'

    # docker.io
    -
      name: Login to docker.io
      uses: docker/login-action@v1
      with:
        registry: docker.io
        username: ${{ secrets.dockerhub_username }}
        password: ${{ secrets.dockerhub_password }}
      if: steps.docker-build.outputs.skipped != 'true'
    -
      name: Push the image to docker.io
      run: ${{ matrix.build_cmd }} --push-only
      if: steps.docker-build.outputs.skipped != 'true'

    # quay.io
    -
      name: Login to Quay.io
      uses: docker/login-action@v1
      with:
        registry: quay.io
        username: ${{ secrets.quayio_username }}
        password: ${{ secrets.quayio_password }}
      if: steps.docker-build.outputs.skipped != 'true'
    -
      name: Build and push the image with '${{ matrix.build_cmd }}'
      run: ${{ matrix.build_cmd }} --push
      env:
        DOCKER_REGISTRY: quay.io
        GH_ACTION: enable
      if: steps.docker-build.outputs.skipped != 'true'

    # ghcr.io
    -
      name: Login to GitHub Container Registry
      uses: docker/login-action@v1
      with:
        registry: ghcr.io
        username: ${{ github.repository_owner }}
        password: ${{ secrets.GITHUB_TOKEN }}
      if: steps.docker-build.outputs.skipped != 'true'
    -
      name: Build and push the image with '${{ matrix.build_cmd }}'
      run: ${{ matrix.build_cmd }} --push
      env:
        DOCKER_REGISTRY: ghcr.io
        DOCKER_ORG: netbox-community
        GH_ACTION: enable
      if: steps.docker-build.outputs.skipped != 'true'