Skip to content

Commit

Permalink
sketch workflow for drafting release from upstream tag (#1076)
Browse files Browse the repository at this point in the history
  • Loading branch information
shiftkey committed Jun 2, 2024
1 parent 22c73b0 commit 0cc466d
Showing 1 changed file with 76 additions and 0 deletions.
76 changes: 76 additions & 0 deletions .github/workflows/create-draft-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: 'Create draft release from upstream'

on:
workflow_dispatch:
inputs:
release:
description: 'Upstream release'
required: true
type: string
publish:
description: 'Whether to publish the release to GitHub on success'
type: boolean
required: false
default: false

jobs:
publish-draft-release:
runs-on: ubuntu-latest
name: Publish draft release
steps:
- name: Checkout
uses: actions/checkout@v4
with:
token: ${{ secrets.CREATE_RELEASE_AUTOMATION_TOKEN }}
- name: Configure git
run: |
git config --global user.name "shiftbot"
git config --global user.email "github@brendanforster.com"
git config --local core.autocrlf "input"
git remote add upstream https://github.com/desktop/desktop.git
shell: bash
- name: Create baseline branch on fork
id: create-baseline-branch
env:
RELEASE_TAG: ${{ inputs.release }}
BASE_BRANCH: 'linux-${{ inputs.release }}'
run: |
git fetch upstream 'refs/tags/*:refs/tags/*'
git checkout -b $BASE_BRANCH $RELEASE_TAG
git push origin $BASE_BRANCH
git config -l --show-origin
shell: bash
- name: Rebase Linux customizations on top of upstream release branch
id: rebase-linux-branch
env:
HEAD_BRANCH: 'apply-changes-${{ inputs.release }}'
BASE_BRANCH: 'linux-${{ inputs.release }}'
UPSTREAM_BRANCH: 'development'
run: |
git fetch origin linux
git fetch origin $UPSTREAM_BRANCH
git checkout -b $UPSTREAM_BRANCH origin/$UPSTREAM_BRANCH
git checkout -b $HEAD_BRANCH linux
git push origin $HEAD_BRANCH
git submodule update
echo "One last git config output..."
git config -l --show-origin
echo "Commit identifiers before performing rebase..."
echo "BASE_BRANCH: $(git rev-parse $BASE_BRANCH)"
echo "development: $(git rev-parse $UPSTREAM_BRANCH)"
echo "HEAD_BRANCH: $(git rev-parse $HEAD_BRANCH)"
echo "Do I have the order right?"
echo "Current: $(git log --oneline --graph $HEAD_BRANCH...$UPSTREAM_BRANCH | wc -l)"
echo "Alternative: $(git log --oneline --graph $UPSTREAM_BRANCH...$HEAD_BRANCH | wc -l)"
echo "About to run 'git log --oneline --graph $HEAD_BRANCH...$UPSTREAM_BRANCH'..."
git log --oneline --graph $HEAD_BRANCH...$UPSTREAM_BRANCH
echo "About to run 'git rebase --verbose $UPSTREAM_BRANCH $HEAD_BRANCH --onto $BASE_BRANCH'..."
git rebase --verbose $UPSTREAM_BRANCH $HEAD_BRANCH --onto $BASE_BRANCH
git push origin $HEAD_BRANCH
shell: bash
continue-on-error: true
- name: Review current status
id: status
run: |
git status
shell: bash

0 comments on commit 0cc466d

Please sign in to comment.