Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions shared/tasks/run-bin-release-binaries/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
platform: linux

inputs:
- name: ci
- name: repo
- name: version

outputs:
- name: released-binaries

params:
DIR: .
OS: |
linux
ARCH: |
amd64

run:
path: ci/shared/tasks/run-bin-release-binaries/task.bash
17 changes: 17 additions & 0 deletions shared/tasks/run-bin-release-binaries/metadata.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
readme: |
This task will run respective `./bin/release-binaries.bash` for different OSes and architectures for repositories
that are meant to release binaries in their github releases. Each repo is responsible for how they like to package
their binaries. Script will be called with the following signature `./bin/release-binaries.bash "${arch}" "${os}" "${version}" "${output_dir}"`
oses:
- linux
params:
DIR: (Defaults to .) Path to where you can run `./bin/release-binaries.bash`.
OS: |
(Defaults to
linux
) Multiline oses that are used to release the binaries.
ARCH: |
(Defaults to
amd64
) Multiline architectures that are used to release the binaries.
45 changes: 45 additions & 0 deletions shared/tasks/run-bin-release-binaries/task.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#!/bin/bash

set -eEu
set -o pipefail

THIS_FILE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
export TASK_NAME="$(basename $THIS_FILE_DIR)"
source "$THIS_FILE_DIR/../../../shared/helpers/helpers.bash"
unset THIS_FILE_DIR

function run(){
local task_tmp_dir="${1:?provide temp dir for task}"
shift 1

git_safe_directory

local version
version="$(cat version/version)"

pushd "repo/$DIR" > /dev/null

debug "Releasing $(get_git_remote_name) version ${version}"

IFS=$'\n'
for arch in ${ARCH}; do
for os in ${OS}; do
debug "Running release-binaries for Arch (${arch}) and Os (${os})"
./bin/release-binaries.bash "${arch}" "${os}" "${version}" "${task_tmp_dir}"
done
done

popd > /dev/null

cp -r ${task_tmp_dir}/* ./released-binaries/

}

function cleanup() {
rm -rf $task_tmp_dir
}

task_tmp_dir="$(mktemp -d -t 'XXXX-task-tmp-dir')"
trap cleanup EXIT
trap 'err_reporter $LINENO' ERR
run $task_tmp_dir "$@"