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 secrets: token: description: The Github token or similar to authenticate with. required: true bucket: description: The name of the S3 bucket to push packages into. required: false access_key_id: description: The S3 access key id for the bucket. required: false secret_access_key: description: The S3 secret access key for the bucket. required: false permissions: 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: Install dependencies run: sudo apt-get update && sudo apt-get install -y build-essential libssl-dev jq wget awscli - name: Make Valkey run: make -C src all BUILD_TLS=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 cp -rfv 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: Configure AWS credentials run: | aws configure set region us-west-2 aws configure set aws_access_key_id ${{ secrets.access_key_id }} aws configure set aws_secret_access_key ${{ secrets.secret_access_key }} - name: Sync to S3 run: aws s3 sync packages-files s3://${{secrets.bucket}}/releases/