diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml
index e67f57ceee..dc178857fb 100644
--- a/.github/workflows/release-build.yml
+++ b/.github/workflows/release-build.yml
@@ -48,22 +48,28 @@ jobs:
echo tag=$(git describe --tags) >> $GITHUB_OUTPUT
while read branchname
do
- #branchname looks like 'develop' or 'r/17.x', the describe + cut looks like '17.x', so we prefix with r/
- # NB: branchname == develop *should not match* anything so that we fall back to the if case below
+ LAST_BRANCH="$branchname"
+ #branchname looks like 'r/17.x', the describe + cut looks like '17.x', so we prefix with r/
+ # NB: branchname == develop is not handled here, it's handled below
if [ "$branchname" != "r/`git describe --tags | cut -f 1 -d -`" ]; then
continue
fi
echo "Base branch is $branchname"
BASE_BRANCH="$branchname"
- echo "branch=$branchname" >> $GITHUB_OUTPUT
+ echo "branch=$BASE_BRANCH" >> $GITHUB_OUTPUT
break
done <<< `gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/repos/${{ github.repository_owner }}/opencast/branches?per_page=100 | \
- jq -r '. | map(select(.name | match("r/[0-9]*.x|develop"))) | .[].name'`
- if [ -z "${BASE_BRANCH}" ]; then
- echo "Base branch is develop"
+ jq -r '. | map(select(.name | match("r/[0-9]*.x"))) | .[].name'`
+ #Figure out what develop branch's version should be
+ # Bash is, without a doubt, the worst possible way to do this, but here we are...
+ export DEVELOP_VERSION=$(($(echo $LAST_BRANCH | cut -f 2 -d '/' | cut -f 1 -d '.') + 1)).x
+ #If we didn't find a match above, *and* the develop branch matches the tag
+ if [ -z "${BASE_BRANCH}" -a "$DEVELOP_VERSION" == "`git describe --tags | cut -f 1 -d -`" ]; then
+ echo "Base branch is develop, version $DEVELOP_VERSION"
+ # Develop is by definition (LAST_BRANCH + 1).x
echo "branch=develop" >> $GITHUB_OUTPUT
fi
@@ -100,26 +106,26 @@ jobs:
- name: Clone upstream repository
run: |
- git clone -b ${{ needs.build.outputs.branch }} "git@github.com:${{ github.repository_owner }}/opencast.git" opencast
+ git clone -b ${{ needs.build-release-tarballs.outputs.branch }} "git@github.com:${{ github.repository_owner }}/opencast.git" opencast
cd opencast
- git checkout -b t/admin-ui-${{ needs.build.outputs.tag }}
+ git checkout -b t/admin-ui-${{ needs.build-release-tarballs.outputs.tag }}
- name: Update the admin ui pom file
working-directory: opencast
run: |
- sed -i "s#.*#${{ needs.build.outputs.checksum }}#" modules/admin-ui-interface/pom.xml
- sed -i "s#.*#https://github.com/${{ github.repository_owner }}/opencast-admin-interface/releases/download/${{ needs.build.outputs.tag }}/oc-admin-ui-${{ needs.build.outputs.tag }}.tar.gz#" modules/admin-ui-interface/pom.xml
+ sed -i "s#.*#${{ needs.build-release-tarballs.outputs.checksum }}#" modules/admin-ui-interface/pom.xml
+ sed -i "s#.*#https://github.com/${{ github.repository_owner }}/opencast-admin-interface/releases/download/${{ needs.build-release-tarballs.outputs.tag }}/oc-admin-ui-${{ needs.build-release-tarballs.outputs.tag }}.tar.gz#" modules/admin-ui-interface/pom.xml
git add modules/admin-ui-interface/pom.xml
- git commit -m "Updating admin ui to ${{ needs.build.outputs.tag }}"
- git push origin t/admin-ui-${{ needs.build.outputs.tag }}
+ git commit -m "Updating admin ui to ${{ needs.build-release-tarballs.outputs.tag }}"
+ git push origin t/admin-ui-${{ needs.build-release-tarballs.outputs.tag }}
#This token is an account wide token which allows creation of PRs and pushes.
echo "${{ secrets.MODULE_PR_TOKEN }}" > token.txt
gh auth login --with-token < token.txt
gh pr create \
- --title "Update ${{ needs.build.outputs.branch }} Admin UI to ${{ needs.build.outputs.tag }}" \
- --body "Updating Opencast ${{ needs.build.outputs.branch }} Admin UI module to [${{ needs.build.outputs.tag }}](https://github.com/${{ github.repository_owner }}/opencast-admin-interface/releases/tag/${{ needs.build.outputs.tag }})" \
- --head=${{ github.repository_owner }}:t/admin-ui-${{ needs.build.outputs.tag }} \
- --base ${{ needs.build.outputs.branch }} \
+ --title "Update ${{ needs.build-release-tarballs.outputs.branch }} Admin UI to ${{ needs.build-release-tarballs.outputs.tag }}" \
+ --body "Updating Opencast ${{ needs.build-release-tarballs.outputs.branch }} Admin UI module to [${{ needs.build-release-tarballs.outputs.tag }}](https://github.com/${{ github.repository_owner }}/opencast-admin-interface/releases/tag/${{ needs.build-release-tarballs.outputs.tag }})" \
+ --head=${{ github.repository_owner }}:t/admin-ui-${{ needs.build-release-tarballs.outputs.tag }} \
+ --base ${{ needs.build-release-tarballs.outputs.branch }} \
-R ${{ github.repository_owner }}/opencast
#FIXME: fine grained PATs can't apply labels
#FIXME: classic PATs don't have the permissions because the PR isn't in an opencastproject (the user) repo