constellation/.github/actions/build_tf_provider/action.yml
Adrian Stobbe 37cff42bfe
ci: build Terraform binaries action (#2684)
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-12-07 16:32:03 +01:00

44 lines
1.6 KiB
YAML

name: Build Terraform provider
description: |
Builds Terraform provider binaries cross platform.
inputs:
targetOS:
description: "Build for this OS. [linux, darwin, windows]"
required: true
default: "linux"
targetArch:
description: "Build for this architecture. [amd64, arm64]"
required: true
default: "amd64"
outputPath:
description: "Output path of the binary"
required: false
runs:
using: "composite"
steps:
# https://github.blog/2022-04-12-git-security-vulnerability-announced/
- name: Mark repository safe
shell: bash
run: |
git config --global --add safe.directory /__w/constellation/constellation
- name: Build Binaries
shell: bash
env:
TARGET_GOOS: ${{ inputs.targetOS }}
TARGET_GOARCH: ${{ inputs.targetArch }}
OUTPUT_PATH: ${{ inputs.outputPath || format('./build/terraform-provider-constellation-{0}-{1}', inputs.targetOS, inputs.targetArch) }}${{ inputs.targetOS == 'windows' && '.exe' || '' }}
run: |
echo "::group::Build Terraform provider"
mkdir -p "$(dirname "${OUTPUT_PATH}")"
label="//terraform-provider-constellation:tf_provider_${TARGET_GOOS}_${TARGET_GOARCH}"
bazel build "${label}"
repository_root=$(git rev-parse --show-toplevel)
out_rel=$(bazel cquery --output=files "${label}")
out_loc="$(realpath "${repository_root}/${out_rel}")"
cp "${out_loc}" "${OUTPUT_PATH}"
chmod +w "${OUTPUT_PATH}"
export PATH="$PATH:$(realpath $(dirname "${OUTPUT_PATH}"))"
echo "$(realpath $(dirname "${OUTPUT_PATH}"))" >> $GITHUB_PATH
echo "::endgroup::"