File: init.yaml

package info (click to toggle)
openvas-scanner 23.38.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 22,468 kB
  • sloc: ansic: 41,621; xml: 6,251; pascal: 3,723; yacc: 1,250; sh: 1,068; makefile: 333; sql: 282; javascript: 12
file content (151 lines) | stat: -rw-r--r-- 6,435 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
name: Initialize

on: 
  workflow_call:
    inputs:
      release:
        type: string
      ref_type:
        type: string
        required: false
        default: ${{ github.ref_type }}
      ref_name:
        type: string
        required: false
        default: ${{ github.ref_name }}
      base_ref:
        type: string
        required: false
        default: ${{ github.base_ref }}
    outputs:
      docker_build_is_latest:
        description: "Is used to set the tags latest and stable"
        value: ${{ jobs.init.outputs.is_latest_tag }}
      docker_build_is_version:
        description: "Is used to set the version tags: major, major-minor, major-minor-patch"
        value: ${{ jobs.init.outputs.is_version_tag }}
      docker_test_tag:
        description: "Is used to smoke test the latest push image"
        value: ${{ jobs.init.outputs.docker_tag }}
      release_new_version:
        description: "new_version, is a release information"
        value: ${{ jobs.init.outputs.new_version }}
      release_latest_version:
        description: "latest_version, is a release information"
        value: ${{ jobs.init.outputs.latest_version }}
      release_kind:
        description: "release_kind, is a release information"
        value: ${{ jobs.init.outputs.release_kind }}
      release_ref:
        description: "release_ref, is a release information"
        value: ${{ jobs.init.outputs.release_ref }}
      release_project:
        description: "The name of the project to be released"
        value: ${{ jobs.init.outputs.project }}

jobs:
  init:
    runs-on: ubuntu-latest
    outputs:
      is_latest_tag: ${{ steps.version.outputs.is_latest_tag }}
      is_version_tag: ${{ steps.version.outputs.is_version_tag }}
      docker_tag: ${{ steps.version.outputs.docker_tag }}
      new_version: ${{ steps.version.outputs.new_version }}
      latest_version: ${{ steps.version.outputs.latest_version }}
      release_kind:  ${{ steps.version.outputs.release_kind }}
      release_ref:  ${{ steps.version.outputs.release_ref }}
      project:  ${{ steps.version.outputs.project}}
    steps:
      - name: Checkout
        uses: actions/checkout@v6
        with:
          fetch-depth: 0
      - name: "set IS_VERSION_TAG"
        run: |
          echo "IS_VERSION_TAG=${{ inputs.ref_type == 'tag' && startsWith(inputs.ref_name, 'v') }}" >> $GITHUB_ENV
          # set defaults
          echo "IS_LATEST_TAG=false" >> $GITHUB_ENV
      - name: "set IS_LATEST_TAG"
        if: ( env.IS_VERSION_TAG == 'true' )
        run: |
          # find the latest version that is not ourself
          export LATEST_VERSION=$(git tag -l | grep -v '${{ inputs.ref_name }}' | sort -r --version-sort | head -n 1)
          # get major minor patch versions
          IFS='.' read -r latest_major latest_minor latest_patch << EOF
          $LATEST_VERSION
          EOF
          IFS='.' read -r tag_major tag_minor tag_patch << EOF
          ${{ inputs.ref_name }}
          EOF
          # remove leading v
          latest_major=$(echo $latest_major | cut -c2-)
          tag_major=$(echo $tag_major | cut -c2-)
          echo "$tag_major >= $latest_major"
          if [[ $tag_major -ge $latest_major && ($tag_minor -ne 0 || $tag_patch -ne 0) ]]; then
            # set this tag to latest and stable
            echo "IS_LATEST_TAG=true" >> $GITHUB_ENV
          fi
          echo "VERSION=$tag_major.$tag_minor.$tag_patch" >> $GITHUB_ENV
      - name: "set DOCKER_TAG = edge"
        if: ( env.IS_VERSION_TAG != 'true' )
        run: |
          echo "DOCKER_TAG=edge" >> $GITHUB_ENV
      - name: "set DOCKER_TAG = ${{ env.VERSION }}"
        if: ( env.IS_VERSION_TAG == 'true' )
        run: |
          echo "DOCKER_TAG=$VERSION" >> $GITHUB_ENV
          
      - name: "set KIND = ${{ inputs.release }}"
        run: echo "KIND=${{ inputs.release }}" >> $GITHUB_ENV
      - name: "set RELEASE_REF = ${{ inputs.ref_name }}"
        if: inputs.base_ref == '' 
        run: echo "RELEASE_REF=${{ inputs.ref_name }}" >> $GITHUB_ENV
      - name: "set RELEASE_REF = ${{ inputs.base_ref }}"
        if: inputs.base_ref != '' 
        run: echo "RELEASE_REF=${{ inputs.base_ref }}" >> $GITHUB_ENV
      - name: RELEASE_REF != NULL
        run: ([ -n "${{ env.RELEASE_REF }}" ])
      - name: "LATEST_VERSION"
        if: inputs.release != 'no_release'
        run: |
          git tag
          if [[ "${{ env.RELEASE_REF }}" = "main" ]]; then
            echo "LATEST_VERSION=$(git tag | grep "^v" | sed 's/^v//' | sort --version-sort | tail -n 1)" >> $GITHUB_ENV
          else
            echo "LATEST_VERSION=$(git tag | grep "^v${{ env.RELEASE_REF }}" | sed 's/^v//' | sort --version-sort | tail -n 1)" >> $GITHUB_ENV
          fi
      - name: "default LATEST_VERSION"
        run: |
          # default to 0.1.0 when there is no previous tag and on main branch
          if ([[ -z "${{ env.LATEST_VERSION }}" ]] &&  [[ "${{ env.RELEASE_REF }}" = "main" ]]); then
            echo "LATEST_VERSION=0.1.0" >> $GITHUB_ENV
          fi

      - name: LATEST_VERSION != NULL
        if: env.KIND != 'no_release'
        run: ([ -n "${{ env.LATEST_VERSION }}" ])
      - name: RELEASE_KIND != NULL
        run: ([ -n "${{ env.KIND }}" ])
      - name: "NEW_VERSION"
        if: env.KIND != 'no_release'
        run: |
          echo "NEW_VERSION=$(sh .github/enhance_version.sh ${{ env.LATEST_VERSION }} ${{ env.KIND }})" >> $GITHUB_ENV
        # if version is set set docker-tag to latest
        # if not and branch is main then set to edge
        # if not and branch is not main then set to unknown
      - name: NEW_VERSION != NULL
        if: env.KIND != 'no_release'
        run: ([ -n "${{ env.NEW_VERSION }}" ])
      - name: set output
        id: version
        run: |
          # release
          echo "latest_version=${{ env.LATEST_VERSION }}">> "$GITHUB_OUTPUT"
          echo "new_version=${{ env.NEW_VERSION }}">> "$GITHUB_OUTPUT"
          echo "release_kind=${{ env.KIND }}">> "$GITHUB_OUTPUT"
          echo "release_ref=${{ env.RELEASE_REF }}">> "$GITHUB_OUTPUT"
          echo "project=$(echo "${{ github.repository }}" | sed 's/.*\///' )" >> "$GITHUB_OUTPUT"
          # docker
          echo "is_latest_tag=${{ env.IS_LATEST_TAG }}">> "$GITHUB_OUTPUT"
          echo "is_version_tag=${{ env.IS_VERSION_TAG }}">> "$GITHUB_OUTPUT"
          echo "docker_tag=${{ env.DOCKER_TAG }}">> "$GITHUB_OUTPUT"