-
Notifications
You must be signed in to change notification settings - Fork 3
63 lines (56 loc) · 3.01 KB
/
check.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
name: Check for new releases
on:
workflow_dispatch:
schedule:
- cron: '0 2 * * *'
jobs:
# Todo: matrixify this
check-2024:
runs-on: ubuntu-latest
outputs:
prerelease: ${{ steps.check_releases.outputs.prerelease }}
latest_prerelease: ${{ steps.get_releases.outputs.latest_prerelease }}
release: ${{ steps.check_releases.outputs.release }}
latest_release: ${{ steps.get_releases.outputs.latest_release }}
steps:
- name: Get releases
id: get_releases
run: |
curl -s https://api.github.com/repos/tModLoader/tModLoader/releases > output.txt
PRERELEASE=$(jq -r '[.[] | select(.tag_name | contains("2024")) | select(.prerelease == true)] | max_by(.created_at) | .tag_name | sub("^v";"")' output.txt)
RELEASE=$(jq -r '[.[] | select(.tag_name | contains("2024")) | select(.prerelease == false)] | max_by(.created_at) | .tag_name | sub("^v";"")' output.txt)
echo "Latest 2024 pre-release is ${PRERELEASE}." >> "$GITHUB_STEP_SUMMARY"
echo "Latest 2024 release is ${RELEASE}." >> "$GITHUB_STEP_SUMMARY"
echo "latest_prerelease=$LATEST" >> "$GITHUB_OUTPUT"
echo "latest_release=$LATEST" >> "$GITHUB_OUTPUT"
- name: Check if version is already published
id: check_releases
run: |
PRERELEASE=$(curl -s "https://hub.docker.com/v2/repositories/passivelemon/tmodloader1.4-docker/tags/${{ steps.get_releases.outputs.latest_prerelease }}")
RELEASE=$(curl -s "https://hub.docker.com/v2/repositories/passivelemon/tmodloader1.4-docker/tags/${{ steps.get_releases.outputs.latest_release }}")
if echo "$PRERELEASE" | jq -e ".digest" > /dev/null; then
echo "Version ${{ steps.get_releases.outputs.latest_prerelease }} is already published." >> "$GITHUB_STEP_SUMMARY"
echo "prerelease=true" >> "$GITHUB_OUTPUT"
else
echo "Version ${{ steps.get_releases.outputs.latest_prerelease }} is not already published." >> "$GITHUB_STEP_SUMMARY"
echo "prerelease=false" >> "$GITHUB_OUTPUT"
fi
if echo "$RELEASE" | jq -e ".digest" > /dev/null; then
echo "Version ${{ steps.get_releases.outputs.latest_release }} is already published." >> "$GITHUB_STEP_SUMMARY"
echo "release=true" >> "$GITHUB_OUTPUT"
else
echo "Version ${{ steps.get_releases.outputs.latest_release }} is not already published." >> "$GITHUB_STEP_SUMMARY"
echo "release=false" >> "$GITHUB_OUTPUT"
fi
publish-prerelease:
uses: PassiveLemon/tmodloader1.4-docker/.github/workflows/publish.yaml@master
if: ${{ needs.check_2024.outputs.prerelease == true }}
with:
VERSION: ${{ check_2024.outputs.latest_prerelease }}
PRERELEASE: true
publish-release:
uses: PassiveLemon/tmodloader1.4-docker/.github/workflows/publish.yaml@master
if: ${{ needs.check_2024.outputs.release == true }}
with:
VERSION: ${{ check_2024.outputs.latest_release }}
PRELRELEASE: false