
## Summary 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>
75 lines
2.5 KiB
YAML
75 lines
2.5 KiB
YAML
name: Builds Linux arm 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 push packages into.
|
|
type: string
|
|
required: true
|
|
secrets:
|
|
bucket_name:
|
|
description: The S3 bucket to push packages into.
|
|
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: Make Valkey
|
|
uses: uraimo/run-on-arch-action@v2
|
|
with:
|
|
arch: aarch64
|
|
distro: ${{matrix.distro.target}}
|
|
install: apt-get update && apt-get install -y build-essential libssl-dev libsystemd-dev
|
|
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/
|