Skip to content

Refactor: Workflow test #1

Refactor: Workflow test

Refactor: Workflow test #1

Workflow file for this run

name: Check for new releases
on:
workflow_dispatch:
schedule:
- cron: '0 2 * * *'
jobs:
# Todo: matrixify this
check-2024:
runs-on: ubuntu-latest
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
- name: Run Publish workflow (Pre-release)
uses: passivelemon/PassiveLemon/.github/workflows/publish.yml@master
if: ${{ steps.check_releases.outputs.prerelease == true }}
with:
VERSION: ${{ steps.get_releases.outputs.latest_prerelease }}
PRERELEASE: true
- name: Run Publish workflow (Release)
uses: passivelemon/PassiveLemon/.github/workflows/publish.yml@master
if: ${{ steps.check_releases.outputs.release == true }}
with:
VERSION: ${{ steps.get_releases.outputs.latest_release }}
PRELRELEASE: false