mirror of
https://github.com/linear/linear-release.git
synced 2026-09-14 20:00:10 +08:00
105 lines
2.8 KiB
YAML
105 lines
2.8 KiB
YAML
name: Run Release Management
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
action:
|
|
description: "Action to perform"
|
|
required: true
|
|
type: string
|
|
name:
|
|
description: "Release name"
|
|
required: false
|
|
type: string
|
|
version:
|
|
description: "Release version"
|
|
required: false
|
|
type: string
|
|
secrets:
|
|
LINEAR_RELEASE_MANAGEMENT_ACCESS_KEY:
|
|
required: true
|
|
|
|
workflow_dispatch:
|
|
inputs:
|
|
action:
|
|
description: "Action"
|
|
required: true
|
|
type: choice
|
|
options:
|
|
- sync
|
|
- complete
|
|
name:
|
|
description: "Release name"
|
|
required: false
|
|
type: string
|
|
version:
|
|
description: "Release version"
|
|
required: false
|
|
type: string
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
sync:
|
|
name: Sync issues to release
|
|
if: inputs.action == 'sync'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
|
with:
|
|
fetch-depth: 0
|
|
persist-credentials: false
|
|
|
|
- name: Download CLI
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
run: gh release download --repo linear/linear-release --pattern "linear-release-linux-x64" --output linear-release
|
|
|
|
- name: Sync issues
|
|
env:
|
|
LINEAR_ACCESS_KEY: ${{ secrets.LINEAR_RELEASE_MANAGEMENT_ACCESS_KEY }}
|
|
RELEASE_NAME: ${{ inputs.name }}
|
|
RELEASE_VERSION: ${{ inputs.version }}
|
|
run: |
|
|
chmod +x linear-release
|
|
args=()
|
|
if [ -n "$RELEASE_NAME" ]; then
|
|
args+=("--name=$RELEASE_NAME")
|
|
fi
|
|
if [ -n "$RELEASE_VERSION" ]; then
|
|
args+=("--release-version=$RELEASE_VERSION")
|
|
fi
|
|
./linear-release sync "${args[@]}"
|
|
|
|
complete:
|
|
name: Complete release
|
|
if: inputs.action == 'complete'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
|
with:
|
|
fetch-depth: 0
|
|
persist-credentials: false
|
|
|
|
- name: Download CLI
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
run: gh release download --repo linear/linear-release --pattern "linear-release-linux-x64" --output linear-release
|
|
|
|
- name: Complete release
|
|
env:
|
|
LINEAR_ACCESS_KEY: ${{ secrets.LINEAR_RELEASE_MANAGEMENT_ACCESS_KEY }}
|
|
RELEASE_NAME: ${{ inputs.name }}
|
|
RELEASE_VERSION: ${{ inputs.version }}
|
|
run: |
|
|
chmod +x linear-release
|
|
args=()
|
|
if [ -n "$RELEASE_NAME" ]; then
|
|
args+=("--name=$RELEASE_NAME")
|
|
fi
|
|
if [ -n "$RELEASE_VERSION" ]; then
|
|
args+=("--release-version=$RELEASE_VERSION")
|
|
fi
|
|
./linear-release complete "${args[@]}"
|