name: Build Release Packages on: release: types: [published] workflow_dispatch: inputs: version: description: Version of Valkey to build required: true permissions: contents: read jobs: # This job provides the version metadata from the tag for the other jobs to use. release-build-get-meta: name: Get metadata to build runs-on: ubuntu-latest outputs: version: ${{ steps.get_version.outputs.VERSION }} steps: - run: | echo "Version: ${{ inputs.version || github.ref_name }}" shell: bash # This step is to consolidate the three different triggers into a single "version" # 1. If manual dispatch - use the version provided. # 3. If tag trigger, use that tag. - name: Get the version id: get_version run: | VERSION="${INPUT_VERSION}" if [ -z "${VERSION}" ]; then exit 1 fi echo "VERSION=$VERSION" >> $GITHUB_OUTPUT shell: bash env: # Use the dispatch variable in preference, if empty use the context ref_name which should # only ever be a tag INPUT_VERSION: ${{ inputs.version || github.ref_name }} generate-build-matrix: name: Generating build matrix runs-on: ubuntu-latest outputs: x86_64-build-matrix: ${{ steps.set-matrix.outputs.x86_64-build-matrix }} arm64-build-matrix: ${{ steps.set-matrix.outputs.arm64-build-matrix }} steps: - name: Checkout repository uses: actions/checkout@v4 # Set up the list of target to build so we can pass the JSON to the reusable job - uses: ./.github/actions/generate-package-build-matrix id: set-matrix with: ref: ${{ inputs.version || github.ref_name }} release-build-linux-x86-packages: needs: - release-build-get-meta - generate-build-matrix uses: ./.github/workflows/call-build-linux-x86-packages.yml with: version: ${{ needs.release-build-get-meta.outputs.version }} ref: ${{ inputs.version || github.ref_name }} build_matrix: ${{ needs.generate-build-matrix.outputs.x86_64-build-matrix }} secrets: token: ${{ secrets.GITHUB_TOKEN }} bucket: ${{ secrets.AWS_S3_BUCKET }} access_key_id: ${{ secrets.AWS_S3_ACCESS_KEY_ID }} secret_access_key: ${{ secrets.AWS_S3_ACCESS_KEY }} release-build-linux-arm-packages: needs: - release-build-get-meta - generate-build-matrix uses: ./.github/workflows/call-build-linux-arm-packages.yml with: version: ${{ needs.release-build-get-meta.outputs.version }} ref: ${{ inputs.version || github.ref_name }} build_matrix: ${{ needs.generate-build-matrix.outputs.arm64-build-matrix }} secrets: token: ${{ secrets.GITHUB_TOKEN }} bucket: ${{ secrets.AWS_S3_BUCKET }} access_key_id: ${{ secrets.AWS_S3_ACCESS_KEY_ID }} secret_access_key: ${{ secrets.AWS_S3_ACCESS_KEY }}