linutil/.github/workflows/preview.yml
JEEVITHA KANNAN K S 904ea6ee53
refact(ci): Preview workflow to create PR (#901)
* refact: use tags instead of runner id

* refact: pr instead of auto commit

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2024-11-01 13:43:05 -05:00

78 lines
2.4 KiB
YAML

name: LinUtil Preview
on:
workflow_dispatch:
inputs:
tag_name:
description: 'Tag name'
required: true
workflow_run:
workflows: ["LinUtil Release"]
types:
- completed
jobs:
generate_preview:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Get tag name ( Workflow Run )
id: latest_tag
uses: actions/github-script@v7
if: ${{ github.event_name }} == 'workflow_run'
with:
script: |
const releases = await github.rest.repos.listReleases({
owner: context.repo.owner,
repo: context.repo.repo,
per_page: 1
});
return releases.data[0].tag_name;
result-encoding: string
- name: Set tag name ( Workflow Run )
if: ${{ github.event_name }} == 'workflow_run'
run: echo "tag_name=${{ steps.latest_tag.outputs.result }}" >> $GITHUB_ENV
- name: Set tag name ( Workflow Dispatch )
if: ${{ github.event_name }} == 'workflow_dispatch'
run: echo "tag_name=${{ github.event.inputs.tag_name }}" >> $GITHUB_ENV
- name: Download binary
run: |
curl -LO "https://github.com/${{ github.repository }}/releases/download/${{ env.tag_name }}/linutil"
- name: Set env
run: |
chmod +x linutil
mkdir -p build
mv linutil build/linutil
echo "${{ github.workspace }}/build" >> $GITHUB_PATH
- name: Generate preview
uses: charmbracelet/vhs-action@v2.1.0
with:
path: "docs/assets/preview.tape"
- name: Move preview
run: mv preview.gif docs/assets/preview.gif
- name: Create PR
uses: peter-evans/create-pull-request@v7.0.5
with:
title: "release: Preview for ${{ env.tag_name }}"
commit-message: "release: Preview for ${{ env.tag_name }}"
branch: "preview-${{ env.tag_name }}"
delete-branch: true
labels: "documentation"
body: |
## Preview for ${{ env.tag_name }}
- Tag: [${{ env.tag_name }}](https://github.com/${{ github.repository }}/tree/${{ env.tag_name }})
- Preview: ![Preview](https://raw.githubusercontent.com/${{ github.repository }}/preview-${{ env.tag_name }}/docs/assets/preview.gif)