diff --git a/.github/workflows/go-basic-tests.yaml b/.github/workflows/go-basic-tests.yaml index 0dd95cb..2eef3d1 100644 --- a/.github/workflows/go-basic-tests.yaml +++ b/.github/workflows/go-basic-tests.yaml @@ -118,7 +118,7 @@ jobs: runs-on: ubuntu-latest needs: [Check-secret, Environment-Test] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: actions/setup-go@v3 name: Setup Go diff --git a/.github/workflows/kubescape-cli-e2e-tests.yaml b/.github/workflows/kubescape-cli-e2e-tests.yaml index 9c5fed2..9b9844d 100644 --- a/.github/workflows/kubescape-cli-e2e-tests.yaml +++ b/.github/workflows/kubescape-cli-e2e-tests.yaml @@ -55,7 +55,18 @@ jobs: SECRET_KEY: ${{ secrets.SECRET_KEY_PROD }} REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} - run: "echo \"is-secret-set=${{ env.CUSTOMER != '' && \n env.USERNAME != '' &&\n env.PASSWORD != '' &&\n env.CLIENT_ID != '' &&\n env.SECRET_KEY != '' &&\n env.REGISTRY_USERNAME != '' &&\n env.REGISTRY_PASSWORD != ''\n }}\" >> $GITHUB_OUTPUT\n" + run: | + env_vars=("CUSTOMER" "USERNAME" "PASSWORD" "CLIENT_ID" "SECRET_KEY" "REGISTRY_USERNAME" "REGISTRY_PASSWORD") + + for var_name in "${env_vars[@]}"; do + var_value="${!var_name}" + if [[ -z "${var_value// /}" ]]; then + echo "Environment variable '$var_name' is empty, null, or contains only whitespace. Failing the workflow." + exit 1 + fi + done + + echo "All environment variables are valid. Proceeding with the workflow." - id: export_tests_to_env name: set test name diff --git a/.github/workflows/package-release.yaml b/.github/workflows/package-release.yaml index ac1ae62..1764bba 100644 --- a/.github/workflows/package-release.yaml +++ b/.github/workflows/package-release.yaml @@ -31,11 +31,13 @@ on: # required: false # type: boolean # default: true + push: + branches: [ main, master ] + tags: + - 'v*.*.*' jobs: test: - permissions: - pull-requests: write uses: ./.github/workflows/go-basic-tests.yaml with: GO_VERSION: ${{ inputs.GO_VERSION }} @@ -46,20 +48,52 @@ jobs: # TEST_MULTI_ENVIRONMENTS: ${{ inputs.TEST_MULTI_ENVIRONMENTS }} secrets: inherit - release: + create_release: needs: test - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Get latest tag + id: get_latest_tag + run: | + latest_tag=$(git describe --tags $(git rev-list --tags --max-count=1)) + echo "Latest tag: $latest_tag" + + - name: Extract version + id: extract_version + run: | + version=$(echo $latest_tag | jq -r 'sub("^[^0-9]*"; "")') + echo "Version: $version" + + - name: Increase version + id: increase_version + run: | + next_version=$((version + 1)) + echo "Next version: $next_version" + + - name: Set tag name + id: set_tag_name + run: | + next_version=$((${{ github.event_name == 'release' }} ? $(echo "${{ github.ref }}" | awk -F'/' '{print $3}') : $(echo "${{ github.ref }}-$(date +%s)" | awk -F'/' '{print $3}'))) + tag_name="v1.0.$(echo "$next_version" | cut -d'.' -f-3)" + echo "::set-output name=tag_name::$tag_name" + continue-on-error: true - - name: Create a release - id: create_release - uses: actions/create-release@v1 - with: - release_name: "Release: ${{ inputs.RELEASE }}" - tag_name: ${{ inputs.RELEASE }} - draft: ${{ inputs.IS_DRAFT }} - prerelease: false + - name: Create release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ steps.set_tag_name.outputs.tag_name }} + release_name: Release ${{ steps.set_tag_name.outputs.tag_name }} + body: | + Release ${{ steps.set_tag_name.outputs.tag_name }} + ------------------------------- + Add release notes here. + draft: false + prerelease: false \ No newline at end of file diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 324ad2d..c1007ef 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -18,26 +18,17 @@ jobs: # TEST_MULTI_ENVIRONMENTS: true secrets: inherit - # validate-go-basic-tests-file-single-os: - # permissions: - # pull-requests: write - # uses: ./.github/workflows/go-basic-tests.yaml - # with: - # GO_VERSION: 1.19 - # BUILD_PATH: "./testdata/." - # UNIT_TESTS_PATH: "./testdata/." - # TEST_MULTI_ENVIRONMENTS: false - # secrets: inherit - + # Validate release files and release pkg. validate-package-releaser-file: needs: validate-go-basic-tests-file permissions: + contents: write pull-requests: write uses: ./.github/workflows/package-release.yaml with: - RELEASE: "v0.0.${{ github.run_number }}" + RELEASE: "${{ github.ref }}" GO_VERSION: 1.19 - IS_DRAFT: true + IS_DRAFT: false BUILD_PATH: "./testdata/." UNIT_TESTS_PATH: "./testdata/." secrets: inherit