Refactor: pylint requires more complexity 80 lw. #958
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Container Image Builds | |
on: | |
push: | |
branches: [main] | |
tags: ["v*"] | |
pull_request: | |
branches: [main] | |
workflow_dispatch: | |
jobs: | |
production: | |
name: Production Images | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- uses: greenbone/actions/is-latest-tag@v3 | |
id: latest | |
- name: Set container build options | |
id: container-opts | |
run: | | |
if [[ "${{ github.ref_type }}" = 'tag' ]]; then | |
echo "version=stable" >> $GITHUB_OUTPUT | |
else | |
echo "version=edge" >> $GITHUB_OUTPUT | |
fi | |
- name: 'Setup meta information (IS_LATEST_TAG: ${{ steps.latest.outputs.is-latest-tag }} )' | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: ${{ github.repository }} | |
labels: | | |
org.opencontainers.image.vendor=Greenbone | |
org.opencontainers.image.base.name=greenbone/openvas-scanner | |
flavor: latest=false # no auto latest container tag for git tags | |
tags: | | |
# when IS_LATEST_TAG is set create a stable and a latest tag | |
type=raw,value=latest,enable=${{ steps.latest.outputs.is-latest-tag == 'true' }} | |
type=raw,value=stable,enable=${{ steps.latest.outputs.is-latest-tag == 'true' }} | |
# if tag version is set than create a version tags | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
type=semver,pattern={{major}} | |
# if we are on the main branch set edge | |
type=edge,branch=main | |
# use branch-sha otherwise for pushes to branches other then main (will not be uploaded) | |
type=raw,value={{branch}}-{{sha}},enable=${{ github.ref_type == 'branch' && github.event_name == 'push' && github.ref_name != 'main' }} | |
# use pr-$PR_ID for pull requests (will not be uploaded) | |
type=ref,event=pr | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to Docker Registry | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Build and push Container image | |
uses: docker/build-push-action@v6 | |
with: | |
context: . | |
push: ${{ github.event_name != 'pull_request' && (github.ref_type == 'tag' || github.ref_name == 'main') }} | |
file: .docker/prod.Dockerfile | |
platforms: linux/amd64,linux/arm64 | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
VERSION=${{ steps.container-opts.outputs.version }} |