diff --git a/.github/workflows/release-tag-alloyengine.yml b/.github/workflows/release-tag-alloyengine.yml new file mode 100644 index 00000000000..0290e2339c2 --- /dev/null +++ b/.github/workflows/release-tag-alloyengine.yml @@ -0,0 +1,67 @@ +name: Tag extension/alloyengine on Alloy release + +on: + push: + tags: + - 'v[0-9]*' + workflow_dispatch: + inputs: + tag: + description: 'Alloy release tag to mirror (e.g. v1.15.0)' + required: true + type: string + +permissions: + contents: read + id-token: write + +jobs: + tag-alloyengine: + runs-on: ubuntu-latest + steps: + - name: Get GitHub app secrets 🔐 + id: get-secrets + uses: grafana/shared-workflows/actions/get-vault-secrets@a37de51f3d713a30a9e4b21bcdfbd38170020593 # get-vault-secrets/v1.3.0 + with: + export_env: false + repo_secrets: | + ALLOYBOT_APP_ID=alloybot:app_id + ALLOYBOT_PRIVATE_KEY=alloybot:private_key + + - name: Generate token 🔐 + uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1 + id: app-token + with: + app-id: ${{ fromJSON(steps.get-secrets.outputs.secrets).ALLOYBOT_APP_ID }} + private-key: ${{ fromJSON(steps.get-secrets.outputs.secrets).ALLOYBOT_PRIVATE_KEY }} + owner: grafana + repositories: alloy + + - name: Create extension/alloyengine tag + env: + ALLOY_TAG: ${{ inputs.tag || github.ref_name }} + GH_TOKEN: ${{ steps.app-token.outputs.token }} + run: | + ALLOY_REF=$(gh api repos/grafana/alloy/git/ref/tags/"${ALLOY_TAG}") + ALLOY_SHA=$(echo "$ALLOY_REF" | jq -r '.object.sha') + ALLOY_TYPE=$(echo "$ALLOY_REF" | jq -r '.object.type') + + # Dereference annotated/signed tags to get the underlying commit SHA + if [ "$ALLOY_TYPE" = "tag" ]; then + ALLOY_SHA=$(gh api repos/grafana/alloy/git/tags/"${ALLOY_SHA}" --jq '.object.sha') + fi + + TAG_NAME="extension/alloyengine/${ALLOY_TAG}" + + # Create annotated tag object (mirrors CreateTag in tools/release) + TAG_OBJECT_SHA=$(gh api repos/grafana/alloy/git/tags \ + -f tag="${TAG_NAME}" \ + -f message="extension/alloyengine ${ALLOY_TAG}" \ + -f object="${ALLOY_SHA}" \ + -f type="commit" \ + --jq '.sha') + + # Create the ref pointing to the tag object + gh api repos/grafana/alloy/git/refs \ + -f ref="refs/tags/${TAG_NAME}" \ + -f sha="${TAG_OBJECT_SHA}" \ No newline at end of file diff --git a/collector/go.mod b/collector/go.mod index f41419d0b80..e9d1de73ffc 100644 --- a/collector/go.mod +++ b/collector/go.mod @@ -5,7 +5,7 @@ module github.com/grafana/alloy/otel_engine go 1.25.8 require ( - github.com/grafana/alloy v0.0.0-00010101000000-000000000000 + github.com/grafana/alloy v1.15.0 github.com/grafana/alloy/extension/alloyengine v0.1.0 github.com/open-telemetry/opentelemetry-collector-contrib/connector/countconnector v0.147.0 github.com/open-telemetry/opentelemetry-collector-contrib/connector/grafanacloudconnector v0.147.0 diff --git a/extension/alloyengine/go.mod b/extension/alloyengine/go.mod index cb45552f975..9ec8c7c3fee 100644 --- a/extension/alloyengine/go.mod +++ b/extension/alloyengine/go.mod @@ -7,7 +7,7 @@ replace github.com/grafana/alloy => ../.. replace github.com/grafana/alloy/syntax => ../../syntax require ( - github.com/grafana/alloy v0.0.0-00010101000000-000000000000 + github.com/grafana/alloy v1.15.0 // x-release-please-version github.com/spf13/cobra v1.10.2 github.com/stretchr/testify v1.11.1 go.opentelemetry.io/collector/component v1.53.0 diff --git a/release-please-config.json b/release-please-config.json index 145c6e66e9a..7b9893b7933 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -35,6 +35,10 @@ { "type": "generic", "path": "collector/VERSION" + }, + { + "type": "generic", + "path": "extension/alloyengine/go.mod" } ] }