Skip to content

Commit

Permalink
Move Snapshot capabilities to EE (#95)
Browse files Browse the repository at this point in the history
Signed-off-by: Aleksandr Stefurishin <aleksandr.stefurishin@flant.com>
Signed-off-by: Pavel Karpov <pavel.karpov@flant.com>
Co-authored-by: Pavel Karpov <pavel.karpov@flant.com>
  • Loading branch information
astef and krpsh123 authored Feb 18, 2025
1 parent 0e82578 commit 3e9df3f
Show file tree
Hide file tree
Showing 29 changed files with 463 additions and 212 deletions.
47 changes: 44 additions & 3 deletions .github/workflows/build_dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,38 +6,79 @@ env:
MODULES_MODULE_NAME: ${{ vars.MODULE_NAME }}
MODULES_MODULE_SOURCE: ${{ vars.DEV_MODULE_SOURCE }}
MODULES_REGISTRY_LOGIN: ${{ vars.DEV_MODULES_REGISTRY_LOGIN }}
DEFAULT_EDITION: ${{ vars.DEFAULT_EDITION }}
MODULES_REGISTRY_PASSWORD: ${{ secrets.DEV_MODULES_REGISTRY_PASSWORD }}

on:
pull_request:
types: [opened, reopened, labeled, unlabeled, synchronize]
# call from trivy_image_check.yaml, which in turn call from pull_request
# https://stackoverflow.com/a/71489231
workflow_call:
push:
branches:
- main

defaults:
run:
shell: bash

jobs:
set_edition:
runs-on: [self-hosted, regular, selectel]
name: Set edition
outputs:
module_edition: ${{ steps.set-vars.outputs.MODULE_EDITION }}
steps:
- name: Get Pull Request Labels
id: get-labels
uses: actions/github-script@v7
with:
script: |
if (context.eventName === "pull_request" || context.eventName === "pull_request_target" ) {
const prNumber = context.payload.pull_request.number;
const { data: labels } = await github.rest.issues.listLabelsOnIssue({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
});
return labels.map(label => label.name);
} else {
return [];
}
result-encoding: string

- name: Set vars
id: set-vars
run: |
MODULE_EDITION=$DEFAULT_EDITION
EDITION=$(echo "${{ steps.get-labels.outputs.result }}" | grep -Po "edition/\K\w+" | head -n 1 || true)
[[ -n $EDITION ]] && MODULE_EDITION=$EDITION
echo "MODULE_EDITION=$MODULE_EDITION" >> "$GITHUB_OUTPUT"
dev_setup_build:
runs-on: [self-hosted, regular, selectel]
name: Build and Push images
needs: [set_edition]
env:
MODULE_EDITION: ${{needs.set_edition.outputs.module_edition}}
steps:
- name: Set vars for PR
if: ${{ github.ref_name != 'main' }}
run: |
MODULES_MODULE_TAG="$(echo pr${{ github.ref_name }} | sed 's/\/.*//g')"
echo "MODULES_MODULE_TAG=$MODULES_MODULE_TAG" >> "$GITHUB_ENV"
shell: bash
- name: Set vars for main
if: ${{ github.ref_name == 'main' }}
run: |
echo "MODULES_MODULE_TAG=${{ github.ref_name }}" >> "$GITHUB_ENV"
shell: bash
- name: Print vars
run: |
echo MODULES_REGISTRY=$MODULES_REGISTRY
echo CI_COMMIT_REF_NAME=$CI_COMMIT_REF_NAME
echo MODULES_MODULE_NAME=$MODULES_MODULE_NAME
echo MODULES_MODULE_SOURCE=$MODULES_MODULE_SOURCE
echo MODULES_MODULE_TAG=$MODULES_MODULE_TAG
shell: bash
echo MODULE_EDITION=$MODULE_EDITION
- uses: actions/checkout@v4
- uses: deckhouse/modules-actions/setup@v1
Expand Down
19 changes: 14 additions & 5 deletions .github/workflows/build_prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ on:
tags:
- '**'

defaults:
run:
shell: bash

jobs:
prod_ce_setup_build:
runs-on: [self-hosted, regular, selectel]
Expand All @@ -22,12 +26,13 @@ jobs:
- name: SET VAR
run: |
echo "MODULES_MODULE_SOURCE=$MODULES_REGISTRY/$MODULE_SOURCE_NAME/ce/modules" >> "$GITHUB_ENV"
echo "MODULE_EDITION=ce" >> "$GITHUB_ENV"
- run: |
echo $MODULES_REGISTRY
echo $MODULES_MODULE_NAME
echo $MODULES_MODULE_SOURCE
echo $MODULES_MODULE_TAG
shell: bash
echo $MODULE_EDITION
name: Show vars
- uses: actions/checkout@v4
Expand Down Expand Up @@ -55,12 +60,13 @@ jobs:
- name: SET VAR
run: |
echo "MODULES_MODULE_SOURCE=$MODULES_REGISTRY/$MODULE_SOURCE_NAME/ee/modules" >> "$GITHUB_ENV"
echo "MODULE_EDITION=ee" >> "$GITHUB_ENV"
- run: |
echo $MODULES_REGISTRY
echo $MODULES_MODULE_NAME
echo $MODULES_MODULE_SOURCE
echo $MODULES_MODULE_TAG
shell: bash
echo $MODULE_EDITION
name: Show vars
- uses: actions/checkout@v4
Expand Down Expand Up @@ -88,12 +94,13 @@ jobs:
- name: SET VAR
run: |
echo "MODULES_MODULE_SOURCE=$MODULES_REGISTRY/$MODULE_SOURCE_NAME/fe/modules" >> "$GITHUB_ENV"
echo "MODULE_EDITION=ee" >> "$GITHUB_ENV"
- run: |
echo $MODULES_REGISTRY
echo $MODULES_MODULE_NAME
echo $MODULES_MODULE_SOURCE
echo $MODULES_MODULE_TAG
shell: bash
echo $MODULE_EDITION
name: Show vars
- uses: actions/checkout@v4
Expand Down Expand Up @@ -121,12 +128,13 @@ jobs:
- name: SET VAR
run: |
echo "MODULES_MODULE_SOURCE=$MODULES_REGISTRY/$MODULE_SOURCE_NAME/se/modules" >> "$GITHUB_ENV"
echo "MODULE_EDITION=se" >> "$GITHUB_ENV"
- run: |
echo $MODULES_REGISTRY
echo $MODULES_MODULE_NAME
echo $MODULES_MODULE_SOURCE
echo $MODULES_MODULE_TAG
shell: bash
echo $MODULE_EDITION
name: Show vars
- uses: actions/checkout@v4
Expand Down Expand Up @@ -154,12 +162,13 @@ jobs:
- name: SET VAR
run: |
echo "MODULES_MODULE_SOURCE=$MODULES_REGISTRY/$MODULE_SOURCE_NAME/se-plus/modules" >> "$GITHUB_ENV"
echo "MODULE_EDITION=seplus" >> "$GITHUB_ENV"
- run: |
echo $MODULES_REGISTRY
echo $MODULES_MODULE_NAME
echo $MODULES_MODULE_SOURCE
echo $MODULES_MODULE_TAG
shell: bash
echo $MODULE_EDITION
name: Show vars
- uses: actions/checkout@v4
Expand Down
62 changes: 31 additions & 31 deletions .github/workflows/deploy_prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ env:
MODULE_SOURCE_NAME: ${{ vars.PROD_MODULE_SOURCE_NAME }}
CI_COMMIT_REF_NAME: ${{ github.ref_name }}
MODULES_MODULE_NAME: ${{ vars.MODULE_NAME }}
RELEASE_CHANNEL: ${{ github.event.inputs.version }}
RELEASE_CHANNEL: ${{ github.event.inputs.channel }}
MODULES_REGISTRY_LOGIN: ${{ vars.PROD_MODULES_REGISTRY_LOGIN }}
MODULES_REGISTRY_PASSWORD: ${{ secrets.PROD_MODULES_REGISTRY_PASSWORD }}
MODULES_READ_REGISTRY_PASSWORD: ${{ secrets.PROD_MODULES_READ_REGISTRY_PASSWORD }}
MODULES_MODULE_TAG: ${{ github.event.inputs.tag }}

on:
workflow_dispatch:
inputs:
version:
description: "Select version"
inputs:
channel:
description: "Select release channel"
type: choice
default: alpha
options:
Expand Down Expand Up @@ -60,27 +60,27 @@ jobs:
echo $RELEASE_CHANNEL
echo $MODULES_MODULE_TAG
shell: bash

job-CE:
name: Edition CE
runs-on: [self-hosted, regular, selectel]
if: github.event.inputs.ce == 'true'
steps:
- run: echo "CE"
- name: SET VAR
run: |
echo "MODULES_MODULE_SOURCE=$MODULES_REGISTRY/$MODULE_SOURCE_NAME/ce/modules" >> "$GITHUB_ENV"
- name: ECHO VAR
run: |
echo $MODULES_MODULE_SOURCE
- uses: actions/checkout@v4
- uses: deckhouse/modules-actions/setup@v1
- name: Check previous release
run: |
chmod +x .github/check_previous_channel_release.sh
.github/check_previous_channel_release.sh $MODULES_MODULE_NAME ce $RELEASE_CHANNEL $MODULES_MODULE_TAG license-token $MODULES_READ_REGISTRY_PASSWORD
- uses: deckhouse/modules-actions/deploy@v1
name: Edition CE
runs-on: [self-hosted, regular, selectel]
if: github.event.inputs.ce == 'true'
steps:
- run: echo "CE"
- name: SET VAR
run: |
echo "MODULES_MODULE_SOURCE=$MODULES_REGISTRY/$MODULE_SOURCE_NAME/ce/modules" >> "$GITHUB_ENV"
- name: ECHO VAR
run: |
echo $MODULES_MODULE_SOURCE
- uses: actions/checkout@v4
- uses: deckhouse/modules-actions/setup@v1
- name: Check previous release
run: |
chmod +x .github/check_previous_channel_release.sh
.github/check_previous_channel_release.sh $MODULES_MODULE_NAME ce $RELEASE_CHANNEL $MODULES_MODULE_TAG license-token $MODULES_READ_REGISTRY_PASSWORD
- uses: deckhouse/modules-actions/deploy@v1

job-EE:
name: Edition EE
runs-on: [self-hosted, regular, selectel]
Expand All @@ -89,18 +89,18 @@ jobs:
- run: echo "EE"
- name: SET VAR
run: |
echo "MODULES_MODULE_SOURCE=$MODULES_REGISTRY/$MODULE_SOURCE_NAME/ee/modules" >> "$GITHUB_ENV"
echo "MODULES_MODULE_SOURCE=$MODULES_REGISTRY/$MODULE_SOURCE_NAME/ee/modules" >> "$GITHUB_ENV"
- name: ECHO VAR
run: |
echo $MODULES_MODULE_SOURCE
echo $MODULES_MODULE_SOURCE
- uses: actions/checkout@v4
- uses: deckhouse/modules-actions/setup@v1
- name: Check previous release
run: |
chmod +x .github/check_previous_channel_release.sh
.github/check_previous_channel_release.sh $MODULES_MODULE_NAME ee $RELEASE_CHANNEL $MODULES_MODULE_TAG license-token $MODULES_READ_REGISTRY_PASSWORD
- uses: deckhouse/modules-actions/deploy@v1

job-FE:
name: Edition FE
runs-on: [self-hosted, regular, selectel]
Expand All @@ -109,10 +109,10 @@ jobs:
- run: echo "FE"
- name: SET VAR
run: |
echo "MODULES_MODULE_SOURCE=$MODULES_REGISTRY/$MODULE_SOURCE_NAME/fe/modules" >> "$GITHUB_ENV"
echo "MODULES_MODULE_SOURCE=$MODULES_REGISTRY/$MODULE_SOURCE_NAME/fe/modules" >> "$GITHUB_ENV"
- name: ECHO VAR
run: |
echo $MODULES_MODULE_SOURCE
echo $MODULES_MODULE_SOURCE
- uses: actions/checkout@v4
- uses: deckhouse/modules-actions/setup@v1
- name: Check previous release
Expand All @@ -129,10 +129,10 @@ jobs:
- run: echo "SE"
- name: SET VAR
run: |
echo "MODULES_MODULE_SOURCE=$MODULES_REGISTRY/$MODULE_SOURCE_NAME/se/modules" >> "$GITHUB_ENV"
echo "MODULES_MODULE_SOURCE=$MODULES_REGISTRY/$MODULE_SOURCE_NAME/se/modules" >> "$GITHUB_ENV"
- name: ECHO VAR
run: |
echo $MODULES_MODULE_SOURCE
echo $MODULES_MODULE_SOURCE
- uses: actions/checkout@v4
- uses: deckhouse/modules-actions/setup@v1
- name: Check previous release
Expand Down
24 changes: 14 additions & 10 deletions .github/workflows/go_lint.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: Go linter for images

env:
GO_BUILD_TAGS: "ce se seplus ee csepro"

on:
pull_request:
push:
Expand All @@ -18,26 +21,27 @@ jobs:
- name: Setup Go environment
uses: actions/setup-go@v5
with:
go-version: '1.22'
go-version: '1.23.5'

- name: Install golangci-lint
run: go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.59.1
run: go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.61.0

- name: Run Go lint
run: |
basedir=$(pwd)
failed='false'
for dir in $(find images -type d); do
if ls $dir/go.mod &> /dev/null; then
echo "Running linter in $dir"
cd $dir
golangci-lint run
for i in $(find images -type f -name go.mod);do
dir=$(echo $i | sed 's/go.mod$//')
cd $basedir/$dir
# check all editions
for edition in $GO_BUILD_TAGS ;do
echo "Running linter in $dir (edition: $edition)"
golangci-lint run --build-tags $edition
if [ $? -ne 0 ]; then
echo "Linter failed in $dir"
echo "Linter failed in $dir (edition: $edition)"
failed='true'
fi
cd $basedir
fi
done
done
if [ $failed == 'true' ]; then
exit 1
Expand Down
10 changes: 8 additions & 2 deletions .github/workflows/go_modules_check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- name: Setup Go environment
uses: actions/setup-go@v5
with:
go-version: '1.22'
go-version: '1.23.5'

- name: Run Go modules version check
run: |
Expand All @@ -44,8 +44,14 @@ jobs:
if [[ "$line" == *github.com/deckhouse/sds-* || "$line" == *github.com/deckhouse/csi-* || "$line" == *github.com/deckhouse/virtualization ]]; then
repository=$(echo "$line" | awk '{print $1}' | awk -F'/' '{ print "https://"$1"/"$2"/"$3".git" }')
pseudo_tag=$(echo "$line" | awk '{print $2}')
go_pkg=$(echo "$line" | awk '{print $1}')
if grep -q "^replace $go_pkg" $go_mod_file ;then
echo "Skipping $go_pkg check because it exists in replacement"
continue
fi
echo "Cloning repo $repository into $temp_dir"
git clone "$repository" "$temp_dir/$repository" >/dev/null 2>&1
if [ -d "$temp_dir/$repository/api" ]; then
Expand Down
Loading

0 comments on commit 3e9df3f

Please sign in to comment.