
This PR fixes #1346 where we can get rid of the long term credentials by using OpenID Connect. OpenID Connect (OIDC) allows your GitHub Actions workflows to access resources in Amazon Web Services (AWS), without needing to store the AWS credentials as long-lived GitHub secrets. --------- Signed-off-by: vudiep411 <vdiep@amazon.com>
73 lines
2.4 KiB
YAML
73 lines
2.4 KiB
YAML
name: Builds Linux X86 binary packages into S3 bucket.
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
version:
|
|
description: The version of Valkey to create.
|
|
type: string
|
|
required: true
|
|
ref:
|
|
description: The commit, tag or branch of Valkey to checkout for building that creates the version above.
|
|
type: string
|
|
required: true
|
|
build_matrix:
|
|
description: The build targets to produce as a JSON matrix.
|
|
type: string
|
|
required: true
|
|
region:
|
|
description: The AWS region to upload the packages to.
|
|
type: string
|
|
required: true
|
|
secrets:
|
|
bucket_name:
|
|
description: The name of the S3 bucket to upload the packages to.
|
|
required: true
|
|
role_to_assume:
|
|
description: The role to assume for the S3 bucket.
|
|
required: true
|
|
|
|
permissions:
|
|
id-token: write
|
|
contents: read
|
|
|
|
jobs:
|
|
build-valkey:
|
|
# Capture source tarball and generate checksum for it
|
|
name: Build package ${{ matrix.distro.target }} ${{ matrix.distro.arch }}
|
|
runs-on: "ubuntu-latest"
|
|
strategy:
|
|
fail-fast: false
|
|
matrix: ${{ fromJSON(inputs.build_matrix) }}
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ inputs.version }}
|
|
|
|
- name: Configure AWS credentials
|
|
uses: aws-actions/configure-aws-credentials@v4
|
|
with:
|
|
aws-region: ${{ inputs.region }}
|
|
role-to-assume: ${{ secrets.role_to_assume }}
|
|
|
|
- name: Install dependencies
|
|
run: sudo apt-get update && sudo apt-get install -y build-essential libssl-dev libsystemd-dev
|
|
|
|
- name: Make Valkey
|
|
run: make -C src all BUILD_TLS=yes USE_SYSTEMD=yes
|
|
|
|
- name: Create Tarball and SHA256sums
|
|
run: |
|
|
TAR_FILE_NAME=valkey-${{inputs.version}}-${{matrix.distro.platform}}-${{ matrix.distro.arch}}
|
|
mkdir -p "$TAR_FILE_NAME/bin" "$TAR_FILE_NAME/share"
|
|
rsync -av --exclude='*.c' --exclude='*.d' --exclude='*.o' src/valkey-* "$TAR_FILE_NAME/bin/"
|
|
cp -v /home/runner/work/valkey/valkey/COPYING "$TAR_FILE_NAME/share/LICENSE"
|
|
tar -czvf $TAR_FILE_NAME.tar.gz $TAR_FILE_NAME
|
|
sha256sum $TAR_FILE_NAME.tar.gz > $TAR_FILE_NAME.tar.gz.sha256
|
|
mkdir -p packages-files
|
|
cp -rfv $TAR_FILE_NAME.tar* packages-files/
|
|
|
|
- name: Sync to S3
|
|
run: aws s3 sync packages-files s3://${{ secrets.bucket_name }}/releases/
|