Skip to content

Commit f4a8e38

Browse files
committed
Fix failing workflow
The whole workflow file has been re-written. The workflow should now work better and more reliably.
1 parent 8f6252e commit f4a8e38

File tree

1 file changed

+47
-53
lines changed

1 file changed

+47
-53
lines changed
Lines changed: 47 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,67 @@
11
name: Turn Pre-release into Release
22
on:
3+
release:
4+
types:
5+
- published
36
push:
47
branches:
58
- main
9+
tags:
10+
- v*
611

712
jobs:
8-
check:
9-
name: Check if latest tag's release is pre-release
13+
find:
14+
name: Find release
1015
runs-on: ubuntu-latest
16+
outputs:
17+
id: ${{ steps.final_step.outputs.release_id }}
18+
tag: ${{ steps.final_step.outputs.tag_name }}
19+
url: ${{ steps.final_step.outputs.url }}
1120
steps:
12-
- name: Checkout code
13-
uses: actions/checkout@v2
21+
- name: Checkout main branch
22+
uses: actions/checkout@v3
23+
with:
24+
ref: main
1425
- name: Get releases
15-
run: curl "$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/releases" -o releases.json
16-
- name: Check if $(cat binary_version) is a pre-release
26+
run: curl --no-progress-meter "$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/releases" -o releases.json
27+
- name: Find release corresponding to the $(cat binary_version) tag
28+
id: final_step
1729
run: |
18-
python <<EOF
19-
import json
20-
import sys
21-
with open('releases.json') as file:
22-
releases = json.loads(file.read())
23-
with open('binary_version') as file:
24-
version = file.read().strip()
25-
for release in releases:
26-
if release["tag_name"] == version:
27-
if release["prerelease"]:
28-
print(f"{release['tag_name']} is a Pre-release")
29-
sys.exit(1)
30-
else:
31-
print(f"{release['tag_name']} is a Release")
32-
sys.exit(0)
33-
else:
34-
print(f"{version} release not found")
35-
EOF
36-
convert:
37-
needs: check
38-
if: ${{ !success() || cancelled() }}
39-
name: Convert pre-release to release
30+
jq ".[] | select(.tag_name == \"$(cat binary_version)\") | ." <releases.json >release.json
31+
jq <release.json -r .tag_name
32+
jq <release.json -r .id
33+
jq <release.json -r .url
34+
echo "::set-output name=tag_name::$(jq <release.json -r .tag_name)"
35+
echo "::set-output name=release_id::$(jq <release.json -r .id)"
36+
echo "::set-output name=url::$(jq <release.json -r .url)"
37+
check:
38+
name: Check if pre-release
4039
runs-on: ubuntu-latest
40+
needs: find
41+
outputs:
42+
prerelease: ${{ steps.check.outputs.prerelease }}
4143
steps:
42-
- name: Checkout code
43-
uses: actions/checkout@v2
44-
- name: Get releases
44+
- name: Get release info
45+
run: curl ${{ needs.find.outputs.url }} -o release.json
46+
- id: check
47+
name: Check if pre-release
4548
run: |
46-
curl "$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/releases" -o releases.json
47-
cat releases.json
48-
- name: Find release id
49-
run: |
50-
python <<EOF
51-
import json
52-
import sys
53-
with open('releases.json') as file:
54-
releases = json.loads(file.read())
55-
with open('binary_version') as file:
56-
version = file.read().strip()
57-
for release in releases:
58-
if release["tag_name"] == version:
59-
print(release["id"])
60-
with open('release_id', 'w') as file:
61-
file.write(f"{release['id']}")
62-
EOF
63-
- name: Convert
49+
jq .prerelease release.json
50+
echo "::set-output name=prerelease::$(jq .prerelease release.json)"
51+
convert:
52+
needs: [find, check]
53+
if: ${{ needs.check.outputs.prerelease }}
54+
runs-on: ubuntu-latest
55+
name: Convert pre-release to release
56+
steps:
57+
- name: Convert to release
6458
env:
6559
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6660
run: |
67-
cat release_id
68-
curl -H "Authorization: token $GITHUB_TOKEN" \
69-
-H "Accept: application/vnd.github.v3+json" \
61+
curl --no-progress-meter \
7062
-X 'PATCH' \
7163
-d '{"prerelease":false}' \
72-
"$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/releases/$(cat release_id)" 2>/dev/null
64+
-H 'Accept: application/vnd.github.v3+json' \
65+
-H "Authorization: token $GITHUB_TOKEN" \
66+
${{ needs.find.outputs.url }}
7367

0 commit comments

Comments
 (0)