name: Prepare patch release on: workflow_dispatch: jobs: prepare-patch-release: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - run: | if [[ ! $GITHUB_REF_NAME =~ ^release/v[0-9]+\.[0-9]+\.x$ ]]; then echo this workflow should only be run against release branches exit 1 fi if ! grep --quiet "^## Unreleased$" CHANGELOG.md; then echo the change log is missing an \"Unreleased\" section exit 1 fi - name: Set environment variables run: | version=$(.github/scripts/get-version.sh) if [[ $version =~ ^([0-9]+\.[0-9]+)\.([0-9]+)$ ]]; then major_minor="${BASH_REMATCH[1]}" patch="${BASH_REMATCH[2]}" else echo "unexpected version: $version" exit 1 fi echo "VERSION=$major_minor.$((patch + 1))" >> $GITHUB_ENV - name: Update version run: .github/scripts/update-version.sh $VERSION - name: Update download link version run: | sed -Ei "s,https://github\.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v[0-9]+\.[0-9]+\.[0-9]+/,https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v$VERSION/," README.md - name: Update the change log with the approximate release date run: | date=$(date "+%Y-%m-%d") sed -Ei "s/^## Unreleased$/## Version $VERSION ($date)/" CHANGELOG.md - name: Set git user run: .github/scripts/set-git-user.sh - name: Create pull request env: # not using secrets.GITHUB_TOKEN since pull requests from that token do not run workflows GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }} run: | message="Prepare release $VERSION" branch="prepare-release-${VERSION}" git commit -a -m "$message" git push origin HEAD:$branch gh pr create --title "[$GITHUB_REF_NAME] $message" \ --body "$message." \ --head $branch \ --base $GITHUB_REF_NAME