Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 17 additions & 6 deletions .github/workflows/release_tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,22 @@ jobs:
name: Gather latest package information
run: |
OUT=$(jq --slurp '[.[].packages[] | select(.name | contains("ezsystems") or contains("ibexa")) | [.name, .version] | { name: (.[0]), version: .[1] }]' composer.lock)
echo "::set-output name=lock::$( echo "$OUT" | sed ':a;N;$!ba;s/\n/%0A/g' )"
echo "lock=$( echo "$OUT" | sed ':a;N;$!ba;s/\n//g' )" >> $GITHUB_OUTPUT

- name: Get previous last full release
id: prevfull
run: |
OUT=$(hub api /repos/${{ github.repository }}/releases | jq -r -s '[ .[][].tag_name | select(. | contains("rc") or contains("beta") or contains("alpha") | not) ] | first')
echo "tag=$( echo "$OUT" )" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Get previous release tag based on type
id: prevrelease
uses: ibexa/version-logic-action@master
with:
currentTag: ${{ env.BUILD_TAG }}
prevFullTag: ${{ steps.prevfull.outputs.tag }}

# checkout previous tag
- uses: actions/checkout@v2
Expand All @@ -42,7 +51,7 @@ jobs:
name: Gather previous package information
run: |
OUT=$(jq --slurp '[.[].packages[] | select(.name | contains("ezsystems") or contains("ibexa")) | [.name, .version] | { name: (.[0]), version: .[1] }]' composer.lock)
echo "::set-output name=lock::$( echo "$OUT" | sed ':a;N;$!ba;s/\n/%0A/g' )"
echo "lock=$( echo "$OUT" | sed ':a;N;$!ba;s/\n//g' )" >> $GITHUB_OUTPUT

# do some magic comparing those outputs
- id: output_data
Expand All @@ -62,9 +71,9 @@ jobs:
# Step 3: Select only those bundles that have more than 1 version in .versions
# Step 4: Sort versions
# Step 5: (outer brackets) Wrap that into JSON list of objects
# Note: zzzz is added as an additional suffix to properly sorl out alpha/beta/etc pre-releases (v2.5.1-alphazzzz < v2.5.1zzzz)
# Note: zzzz is added as an additional suffix to properly sort out alpha/beta/etc pre-releases (v2.5.1-alphazzzz < v2.5.1zzzz)
OUT=$(jq -s 'flatten | group_by(.name)' $FILE1 $FILE2 | jq -s '[ .[][] | {name: (.[0].name), versions: [ .[0].version, .[1].version ] | unique} | select(.versions | length > 1) ] | .[].versions |= sort_by( . + "zzzz" | [scan("[0-9]+|[a-z]+")] | map(tonumber? // .) )')
echo "::set-output name=matrix::$( echo "$OUT" | sed ':a;N;$!ba;s/\n/%0A/g' )"
echo "matrix=$( echo "$OUT" | sed ':a;N;$!ba;s/\n//g' )" >> $GITHUB_OUTPUT

# this step is needed, so the output gets to the next defined job
outputs:
Expand Down Expand Up @@ -123,15 +132,17 @@ jobs:
python main.py >> generator_output
echo '' >> generator_output
done
echo "::set-output name=output::$( cat generator_output | sed ':a;N;$!ba;s/\n/%0A/g' )"
echo "CHANGELOG_OUTPUT<<EOF" >> $GITHUB_ENV
echo "$(cat generator_output)" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV

- name: Create Release
id: create_release
uses: zendesk/action-create-release@v1
with:
tag_name: ${{ env.BUILD_TAG }}
body: |
${{ steps.generator.outputs.output }}
${{ env.CHANGELOG_OUTPUT }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Expand Down