diff --git a/.github/workflows/release-scripts.yml b/.github/workflows/release-scripts.yml new file mode 100644 index 0000000..aa741f8 --- /dev/null +++ b/.github/workflows/release-scripts.yml @@ -0,0 +1,42 @@ +on: + workflow_dispatch: + inputs: + version: + type: string + required: true + description: "Version to release" + +name: Release + +jobs: + release_workflow: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Step 1 - Checkout repository code + uses: actions/checkout@v4 + with: + submodules: 'true' + fetch-depth: 0 + token: ${{ secrets.PUSH_TO_PROTECTED_BRANCH }} + + - name: Step 2 - Run release-scripts + env: + VERSION: ${{ inputs.version }} + GITHUB_TOKEN: ${{ secrets.PUSH_TO_PROTECTED_BRANCH }} + run: | + NEXT_VERSION="$(echo '${{ inputs.version }}' | perl -pe 's{^(([0-9]\.)+)?([0-9]+)$}{$1 . ($3 + 1)}e')" + git config --global user.name "${GITHUB_ACTOR}" + git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com" + ./release-scripts/release.sh -v $VERSION $NEXT_VERSION + echo $(git log -5 --oneline) + git push --atomic origin master develop --follow-tags # all or nothing + + - name: Step 3 - Create release notes + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + TAG="$(git describe --abbrev=0)" + echo $TAG + gh release create "$TAG" --repo="$GITHUB_REPOSITORY" --title="${GITHUB_REPOSITORY#*/} ${TAG#v}" --generate-notes diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 31c1fae..2ecc297 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,7 @@ on: jobs: build: - runs-on: ubuntu-22-04 + runs-on: ubuntu-latest steps: - name: Step 1 - Checkout repository code uses: actions/checkout@v4