diff --git a/.github/workflows/weekly-release.yml b/.github/workflows/weekly-release.yml new file mode 100644 index 00000000..d5076371 --- /dev/null +++ b/.github/workflows/weekly-release.yml @@ -0,0 +1,42 @@ +name: Weekly Release + +on: + schedule: + # Every Monday at 08:00 UTC + - cron: '0 8 * * 1' + workflow_dispatch: + +permissions: + contents: write + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Get release tag and name + id: date + run: | + echo "tag=v$(date -u +%G.%V)" >> "$GITHUB_OUTPUT" + echo "name=Release $(date -u +%Y-%m-%d) Week $(date -u +%V)" >> "$GITHUB_OUTPUT" + + - name: Check if tag already exists + id: check + run: | + if git rev-parse --quiet --verify "refs/tags/${{ steps.date.outputs.tag }}" >/dev/null; then + echo "exists=true" >> "$GITHUB_OUTPUT" + else + echo "exists=false" >> "$GITHUB_OUTPUT" + fi + + - name: Create release + if: steps.check.outputs.exists == 'false' + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ steps.date.outputs.tag }} + name: ${{ steps.date.outputs.name }} + generate_release_notes: true \ No newline at end of file