Sunshine/.github/workflows/update-winget-release.yml

69 lines
2.2 KiB
YAML
Raw Normal View History

2024-05-24 01:42:06 +00:00
---
# This action is a candidate to centrally manage in https://github.com/<organization>/.github/
# If more Winget applications are developed, consider moving this action to the organization's .github repository,
# using the `winget-pkg` repository label to identify repositories that should trigger this workflow.
2024-05-24 01:42:06 +00:00
# Update Winget on release events.
name: Update Winget release
on:
release:
2024-10-05 01:47:04 +00:00
types: [released]
2024-05-24 01:42:06 +00:00
concurrency:
group: "${{ github.workflow }}-${{ github.event.release.tag_name }}"
cancel-in-progress: true
jobs:
update-winget-release:
if: >-
2024-10-05 01:47:04 +00:00
github.repository_owner == 'LizardByte'
2024-05-24 01:42:06 +00:00
runs-on: ubuntu-latest
steps:
- name: Check if Winget repo
env:
TOPIC: winget-pkg
2024-10-05 01:47:04 +00:00
id: check-label
2024-05-24 01:42:06 +00:00
uses: actions/github-script@v7
with:
script: |
const topic = process.env.TOPIC;
console.log(`Checking if repo has topic: ${topic}`);
const repoTopics = await github.rest.repos.getAllTopics({
owner: context.repo.owner,
repo: context.repo.repo
});
console.log(`Repo topics: ${repoTopics.data.names}`);
const hasTopic = repoTopics.data.names.includes(topic);
console.log(`Has topic: ${hasTopic}`);
core.setOutput('hasTopic', hasTopic);
- name: Download release asset
id: download
if: >-
2024-10-05 01:47:04 +00:00
steps.check-label.outputs.hasTopic == 'true'
uses: robinraju/release-downloader@v1.11
2024-05-24 01:42:06 +00:00
with:
repository: "${{ github.repository }}"
tag: "${{ github.event.release.tag_name }}"
fileName: "*.exe"
tarBall: false
zipBall: false
out-file-path: "release_downloads"
extract: false
- name: Release to WinGet
if: >-
2024-10-05 01:47:04 +00:00
steps.check-label.outputs.hasTopic == 'true' &&
2024-05-24 01:42:06 +00:00
fromJson(steps.download.outputs.downloaded_files)[0]
uses: vedantmgoyal2009/winget-releaser@v2
with:
identifier: "${{ github.repository_owner }}.${{ github.event.repository.name }}"
release-tag: ${{ github.event.release.tag_name }}
installers-regex: '\.exe$'
token: ${{ secrets.GH_BOT_TOKEN }}