blob: 58447968c4c0b118a931f860d1fbd3745d30b298 [file] [log] [blame]
name: "Create a submodule release"
on:
workflow_dispatch:
inputs:
subdir:
required: true
type: string
description: "The subdir within rules_pkg"
default: "providers"
version:
required: true
type: string
description: "Version #"
permissions:
id-token: write
attestations: write
contents: write
jobs:
tests:
name: "Release Tests"
uses: "./.github/workflows/checks.yml"
create_tag:
name: "Create tag"
runs-on:
- "ubuntu-latest"
needs:
- "tests"
steps:
- uses: actions/checkout@v6
- name: "Create tag"
id: "tag"
env:
SUBDIR: "${{ inputs.subdir }}"
VERSION: "${{ inputs.version }}"
MODULE: "rules_pkg_${{ inputs.subdir }}"
GIT_AUTHOR_NAME: "${{ github.actor }}"
GIT_AUTHOR_EMAIL: "${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com"
GIT_COMMITTER_NAME: "${{ github.actor }}"
GIT_COMMITTER_EMAIL: "${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com"
run: |
# Download `buildozer`
#
curl -o "${RUNNER_TEMP}/buildozer" -L "https://github.com/bazelbuild/buildtools/releases/download/v7.3.1/buildozer-linux-amd64"
chmod a+x "${RUNNER_TEMP}/buildozer"
"${RUNNER_TEMP}/buildozer" "set version ${VERSION}" "//${SUBDIR}/MODULE.bazel:${MODULE}" || true
git add "${SUBDIR}/MODULE.bazel"
sed -i -e "s/@AUTO_VERSION@/${VERSION}/" ${SUBDIR}/version.bzl
git add "${SUBDIR}/version.bzl"
git commit -m "Release `${MODULE}-${VERSION}`"
# 3. Push release tag.
git tag "${MODULE}-${VERSION}" "HEAD"
git push origin "${MODULE}-${VERSION}"
release:
name: "Create GitHub release"
needs:
- "create_tag"
uses: "bazel-contrib/.github/.github/workflows/release_ruleset.yaml@v7.2.4"
with:
# This will run release_prep.sh to do the dirty work.
# TODO: https://github.com/bazelbuild/rules_pkg/issues/1031
release_files: "bazel-bin/distro/rules_pkg_${{ inputs.subdir }}-*.tgz"
tag_name: "rules_pkg_${{ inputs.subdir }}-${{ inputs.version }}"
# We only do a partial test. The problem is that RPM does not work on the github runners
# so we must skip, but the release_ruleset flow appends cache flags to the command. That
# makes the syntax 'bazel test //... -- -//test/rpm/... =disk_cache-flag' impossible.
# It doesn't matter. We have to do the full test anyway before hitting this, so everything
# should still work, if we only changed the version in the module.
bazel_test_command: "bazel test --build_tests_only //tests/tar/... //tests/zip/..."