Browse Source

ci: skip LICENSE.txt copy for Ent releases

Ensure we do not unintentionally copy CE LICENSE.txt to Ent release
artifacts.

Also rework Go Build jobs to avoid future sync conflicts by handling CE
and Ent builds simultaneously.
pull/21055/head
Michael Zalimeni 7 months ago
parent
commit
bd8b167225
  1. 34
      .github/scripts/copy-legal.sh
  2. 26
      .github/workflows/build.yml

34
.github/scripts/copy-legal.sh

@ -0,0 +1,34 @@
#!/bin/bash
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: BUSL-1.1
set -euo pipefail
repository_name=${1}
target_dirs="${@:2}"
if [ -z "$repository_name" ] || [ -z "$target_dirs" ]; then
echo "Error: repository_name and at least one value for target_dirs must be non-empty strings."
exit 1
fi
function copy_file {
for dir in $target_dirs; do
mkdir -p $dir
target_path="$dir/${2}"
echo "-> Copying $1 to $target_path"
cp "${1}" $target_path
done
}
if [[ $repository_name == *"-enterprise" ]]; then
echo "Copying legal (Ent)"
echo "Downloading EULA.txt and TermsOfEvaluation.txt"
curl -so /tmp/EULA.txt https://eula.hashicorp.com/EULA.txt
curl -so /tmp/TermsOfEvaluation.txt https://eula.hashicorp.com/TermsOfEvaluation.txt
copy_file /tmp/EULA.txt EULA.txt
copy_file /tmp/TermsOfEvaluation.txt TermsOfEvaluation.txt
else
echo "Copying legal (CE)"
copy_file LICENSE LICENSE.txt
fi

26
.github/workflows/build.yml

@ -10,6 +10,7 @@ on:
# Push events on the main branch # Push events on the main branch
- main - main
- release/** - release/**
workflow_dispatch:
env: env:
PKG_NAME: consul PKG_NAME: consul
@ -141,15 +142,10 @@ jobs:
arch: ${{ matrix.goarch }} arch: ${{ matrix.goarch }}
reproducible: report reproducible: report
instructions: |- instructions: |-
cp LICENSE $TARGET_DIR/LICENSE.txt # Note that for non-linux builds, .release/linux/package... is a no-op,
go build -ldflags="$GOLDFLAGS" -o "$BIN_PATH" -trimpath -buildvcs=false # but files will always included in the zip root directory (TARGET_DIR) on all platforms.
./.github/scripts/copy-legal.sh "${{ github.repository }}" "$TARGET_DIR" ".release/linux/package/usr/share/doc/${{ env.PKG_NAME }}"
- name: Copy license file ${{ matrix.env }} go build -ldflags="$GOLDFLAGS" -tags="${{ matrix.gotags }}" -o "$BIN_PATH" -trimpath -buildvcs=false
env:
LICENSE_DIR: ".release/linux/package/usr/share/doc/${{ env.PKG_NAME }}"
run: |
mkdir -p "$LICENSE_DIR"
cp LICENSE "$LICENSE_DIR/LICENSE.txt"
- name: Package - name: Package
if: ${{ matrix.goos == 'linux' }} if: ${{ matrix.goos == 'linux' }}
@ -240,8 +236,10 @@ jobs:
arch: ${{ matrix.goarch }} arch: ${{ matrix.goarch }}
reproducible: report reproducible: report
instructions: |- instructions: |-
cp LICENSE $TARGET_DIR/LICENSE.txt # Note that for non-linux builds, .release/linux/package... is a no-op,
go build -ldflags="$GOLDFLAGS" -o "$BIN_PATH" -trimpath -buildvcs=false # but files will always included in the zip root directory (TARGET_DIR) on all platforms.
./.github/scripts/copy-legal.sh "${{ github.repository }}" "$TARGET_DIR" ".release/linux/package/usr/share/doc/${{ env.PKG_NAME }}"
go build -ldflags="$GOLDFLAGS" -tags="${{ matrix.gotags }}" -o "$BIN_PATH" -trimpath -buildvcs=false
build-darwin: build-darwin:
needs: needs:
@ -291,8 +289,10 @@ jobs:
arch: ${{ matrix.goarch }} arch: ${{ matrix.goarch }}
reproducible: report reproducible: report
instructions: |- instructions: |-
cp LICENSE $TARGET_DIR/LICENSE.txt # Note that for non-linux builds, .release/linux/package... is a no-op,
go build -ldflags="$GOLDFLAGS" -tags netcgo -o "$BIN_PATH" -trimpath -buildvcs=false # but files will always included in the zip root directory (TARGET_DIR) on all platforms.
./.github/scripts/copy-legal.sh "${{ github.repository }}" "$TARGET_DIR" ".release/linux/package/usr/share/doc/${{ env.PKG_NAME }}"
go build -ldflags="$GOLDFLAGS" -tags="${{ matrix.gotags }}" -o "$BIN_PATH" -trimpath -buildvcs=false
build-docker: build-docker:
name: Docker ${{ matrix.arch }} build name: Docker ${{ matrix.arch }} build

Loading…
Cancel
Save