Publish: Update LaunchAgents extension (#14157) * Update LaunchAgents extension Scenario: empty list Action: Create launch agent Result: LaunchAgent created but list not refreshed Expected: Launch agente created and list updated to see the newly created * Update CHANGELOG.md and optimise images --------- Co-authored-by: raycastbot <bot@raycast.com> #37431
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Extensions | |
run-name: "${{ github.event_name == 'push' && format('Publish: {0}', github.event.head_commit.message) || (github.event_name == 'pull_request' && format('Check: {0}', github.event.pull_request.title) || github.event_name == 'workflow_dispatch' && format('Manual: {0} {1}', inputs.command, inputs.paths) || format('Event: {0}', github.event_name) ) }}" | |
on: | |
workflow_dispatch: | |
inputs: | |
paths: | |
description: 'Extensions to update (comma-separated relative paths for extensions) or ("extensions/**"" to execute on all possible subdirectories)' | |
required: true | |
command: | |
description: "Ray CLI command to run (build | publish)" | |
default: "build" | |
required: true | |
type: choice | |
options: | |
- build | |
- publish | |
cli_version: | |
description: 'CLI Version (optional, eg. "1.0.0")' | |
required: false | |
pull_request: | |
paths: | |
- "extensions/**" | |
branches: [main, master] | |
push: | |
paths: | |
- "extensions/**" | |
branches: [main, master] | |
jobs: | |
extensions_build_publish: | |
if: github.repository == 'raycast/extensions' | |
name: "${{ github.event_name == 'push' && 'Publish' || (github.event_name == 'pull_request' && 'Check' || github.event_name == 'workflow_dispatch' && inputs.command || github.event_name ) }}" | |
runs-on: macos-14 | |
steps: | |
- name: Setup Xcode | |
uses: raycast/github-actions/setup-xcode@xcode-15.4.x | |
- uses: actions/checkout@v4 | |
with: | |
path: github_utils | |
sparse-checkout: | | |
.github | |
# This makes sure that the problems found while validating the extensions are shown in the PR diff | |
- name: Register Problem Matcher for Ray CLI | |
run: echo "##[add-matcher]github_utils/.github/ray.matcher.json" | |
- name: Generate 'allow_owners_only_for_extensions' | |
id: allow_owners_only_for_extensions | |
run: | | |
file_path="${{ github.workspace }}/github_utils/.github/public_raycast_extensions.txt" | |
if [[ -f "$file_path" ]]; then | |
echo "value<<EOF" >> "$GITHUB_OUTPUT" | |
while IFS= read -r line; do | |
echo "$line" >> "$GITHUB_OUTPUT" | |
done < "$file_path" | |
echo "EOF" >> "$GITHUB_OUTPUT" | |
fi | |
- name: Cleanup github_utils | |
run: | | |
rm -rf ${{ github.workspace }}/github_utils | |
- name: Run Ray CLI | |
id: ray_cli | |
uses: raycast/github-actions/ray@v1.16.0 | |
with: | |
access_token: "${{ secrets.RAYCAST_CLI_ACCESS_TOKEN }}" | |
command: "${{ github.event.inputs.command }}" | |
paths: "${{ github.event.inputs.paths }}" | |
cli_version: "${{ github.event.inputs.cli_version }}" | |
allow_owners_only_for_extensions: "${{ steps.allow_owners_only_for_extensions.outputs.value }}" | |
- name: Post Store URLs | |
if: github.event_name == 'push' | |
uses: raycast/github-actions/git-post-store-urls-to-pr@v1.16.0 | |
with: | |
store_urls: ${{ steps.ray_cli.outputs.store_urls }} | |
github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} | |
- name: Reward Contributor | |
uses: actions/github-script@v7 | |
if: github.event_name == 'push' | |
env: | |
PUBLISHING_BOT_TOKEN: ${{ secrets.RAYCAST_CLI_ACCESS_TOKEN }} | |
with: | |
github-token: ${{ secrets.RAYCAST_BOT_API_ACCESS_TOKEN }} | |
script: | | |
const result = await github.rest.repos.getContent({ | |
mediaType: { | |
format: "raw", | |
}, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
path: "scripts/reward.js", | |
}); | |
require('fs').writeFileSync('./reward.js', result.data); | |
const script = require('./reward') | |
await script({ | |
github, | |
context, | |
fetch, | |
}) | |
- name: Notify Failure to Slack | |
if: failure() && (github.event_name == 'push' || github.event_name == 'workflow_dispatch') | |
uses: raycast/github-actions/slack-send@master | |
with: | |
webhook: ${{ github.event_name == 'workflow_dispatch' && secrets.SLACK_RELEASE_CHANNEL_WEBHOOK_URL || secrets.SLACK_STREAM_ERRORS_STORE_PUBLIC }} | |
color: "danger" | |
text: | | |
:no_entry_sign: ${env.GITHUB_WORKFLOW} has failed | |
<${env.GITHUB_SERVER_URL}/${env.GITHUB_REPOSITORY}/actions/runs/${env.GITHUB_RUN_ID}|Action logs> | <${env.GITHUB_SERVER_URL}/${env.GITHUB_REPOSITORY}/commit/${ env.GITHUB_SHA }|Commit: ${ env.GITHUB_SHA.substr(0,8) }> | |
- name: Notify Success to Slack | |
if: success() && github.event_name == 'workflow_dispatch' | |
uses: raycast/github-actions/slack-send@master | |
with: | |
webhook: ${{ secrets.SLACK_RELEASE_CHANNEL_WEBHOOK_URL }} | |
color: "good" | |
text: | | |
:white_check_mark: ${env.GITHUB_WORKFLOW} has succeeded | |
<${env.GITHUB_SERVER_URL}/${env.GITHUB_REPOSITORY}/actions/runs/${env.GITHUB_RUN_ID}|Action logs> | <${env.GITHUB_SERVER_URL}/${env.GITHUB_REPOSITORY}/commit/${ env.GITHUB_SHA }|Commit: ${ env.GITHUB_SHA.substr(0,8) }> |