-
Notifications
You must be signed in to change notification settings - Fork 24
87 lines (72 loc) · 2.85 KB
/
release.yml
File metadata and controls
87 lines (72 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
name: Release
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
repository-projects: write
env:
CERTIFICATE_CHAIN: ${{ secrets.CERTIFICATE_CHAIN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
PRIVATE_KEY_PASSWORD: ${{ secrets.PRIVATE_KEY_PASSWORD }}
PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }}
steps:
- uses: actions/checkout@v5
with:
# Fetch all history.
fetch-depth: 0
- name: Setup Java
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 21
- name: Prepare release name
run: |
VERSION_NAME=$(grep "^VERSION_NAME=" gradle.properties | cut -d '=' -f 2)
IS_SNAPSHOT=false
if [[ $VERSION_NAME == *-SNAPSHOT ]]; then
IS_SNAPSHOT=true
else
IS_SNAPSHOT=false
fi
echo "VERSION_NAME=$VERSION_NAME"
echo "IS_SNAPSHOT=$IS_SNAPSHOT"
echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_ENV
echo "IS_SNAPSHOT=$IS_SNAPSHOT" >> $GITHUB_ENV
- name: Build CLI
run: ./gradlew buildCLI
- name: Build signed plugin
run: ./gradlew signPlugin
- name: Verify IntelliJ plugin
run: ./gradlew verifyPlugin
- name: Publish to Marketplace
if: env.IS_SNAPSHOT == 'false'
run: ./gradlew publishPlugin
- name: Delete release if exist then create a new one
run: |
gh release view ${{ env.VERSION_NAME }} && gh release delete ${{ env.VERSION_NAME }} -y --cleanup-tag
# Create a pre-release if it's a snapshot version.
if [[ ${{ env.IS_SNAPSHOT }} == "true" ]]; then
PRE_RELEASE_FLAG="--prerelease"
else
PRE_RELEASE_FLAG=""
# Delete last snapshot if it exists to make sure `--generate-notes` works correctly.
gh release view ${{ env.VERSION_NAME }}-SNAPSHOT && gh release delete ${{ env.VERSION_NAME }}-SNAPSHOT -y --cleanup-tag
fi
gh release create ${{ env.VERSION_NAME }} tools/idea-plugin/build/distributions/*-signed.zip tools/cli/build/distributions/*.zip --generate-notes $PRE_RELEASE_FLAG
- uses: mislav/bump-homebrew-formula-action@v3
if: env.IS_SNAPSHOT == 'false'
with:
formula-name: valkyrie
formula-path: Formula/valkyrie.rb
tag-name: ${{ env.VERSION_NAME }}
homebrew-tap: ComposeGears/homebrew-repo
download-url: https://github.com/ComposeGears/Valkyrie/releases/download/${{ env.VERSION_NAME }}/valkyrie-cli-${{ env.VERSION_NAME }}.zip
commit-message: |
Bump {{formulaName}} {{version}}
env:
COMMITTER_TOKEN: ${{ secrets.COMMITTER_TOKEN }}