Skip to content

Commit 31ca716

Browse files
authored
Merge pull request #1 from bytebot-ai/ryvn/add-github-actions-aws-rds-postgres-93a0e72c
feat: add Ryvn GitHub Actions workflow for aws-rds-postgres
2 parents aa1fdda + c618ae6 commit 31ca716

File tree

1 file changed

+41
-36
lines changed

1 file changed

+41
-36
lines changed
Lines changed: 41 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
name: Build & Release aws-rds-postgres
1+
name: Build & Release aws-rds-postgres (Combined)
22

33
on:
4+
workflow_dispatch:
45
push:
56
branches:
67
- "main"
78
paths:
89
- "**"
10+
- ".github/workflows/ryvn-aws-rds-postgres-release.yaml"
911
pull_request:
1012
branches:
1113
- "main"
@@ -16,18 +18,13 @@ env:
1618
SERVICE_NAME: aws-rds-postgres
1719

1820
jobs:
19-
generate-tag:
20-
name: Generate Release Tag
21-
if: github.ref == format('refs/heads/{0}', github.event.repository.default_branch)
21+
build-and-release:
22+
name: Build and Release
2223
runs-on: ubuntu-latest
2324
permissions:
24-
contents: read
25+
contents: write
2526
id-token: write
2627

27-
outputs:
28-
version: ${{ steps.generate-tag.outputs.version }}
29-
new_tag: ${{ steps.generate-tag.outputs.new_tag }}
30-
3128
steps:
3229
- name: Checkout code
3330
uses: actions/checkout@v4
@@ -49,56 +46,64 @@ jobs:
4946
# Extract version and tag from JSON output
5047
version=$(echo "$tag_info" | jq -r '.version')
5148
new_tag=$(echo "$tag_info" | jq -r '.tag')
52-
49+
channel=$(echo "$tag_info" | jq -r '.channel')
50+
isPreview=$(echo "$tag_info" | jq -r '.isPreview')
51+
5352
echo "version=$version" >> $GITHUB_OUTPUT
5453
echo "new_tag=$new_tag" >> $GITHUB_OUTPUT
54+
echo "channel=$channel" >> $GITHUB_OUTPUT
55+
echo "isPreview=$isPreview" >> $GITHUB_OUTPUT
5556
5657
57-
release:
58-
name: Create Release
59-
60-
needs: [generate-tag]
61-
62-
if: |
63-
github.ref == format('refs/heads/{0}', github.event.repository.default_branch) &&
64-
!contains(github.event.head_commit.message, '[skip-release]') &&
65-
!contains(github.event.pull_request.title, '[skip-release]')
66-
runs-on: ubuntu-latest
67-
permissions:
68-
contents: write
69-
70-
steps:
71-
- name: Checkout code
72-
uses: actions/checkout@v4
73-
with:
74-
fetch-depth: 0
75-
76-
- name: Install Ryvn CLI
77-
uses: ryvn-technologies/install-ryvn-cli@v1.0.0
7858
7959
- name: Create Ryvn Release
60+
if: |
61+
!contains(github.event.head_commit.message, '[skip-release]') &&
62+
!contains(github.event.pull_request.title, '[skip-release]') &&
63+
(steps.generate-tag.outputs.isPreview == 'true' || github.ref == format('refs/heads/{0}', github.event.repository.default_branch))
8064
env:
8165
RYVN_CLIENT_ID: ${{ secrets.RYVN_CLIENT_ID }}
8266
RYVN_CLIENT_SECRET: ${{ secrets.RYVN_CLIENT_SECRET }}
8367
run: |
84-
version="${{ needs.generate-tag.outputs.new_tag }}"
68+
version="${{ steps.generate-tag.outputs.new_tag }}"
8569
version=${version#aws-rds-postgres@}
8670
version=${version#@}
87-
ryvn create release ${{ env.SERVICE_NAME }} $version
71+
channel="${{ steps.generate-tag.outputs.channel }}"
72+
is_preview="${{ steps.generate-tag.outputs.isPreview }}"
73+
74+
# Validate that preview releases have a channel
75+
if [ "$is_preview" = "true" ] && [ -z "$channel" ]; then
76+
echo "Error: Preview releases must specify a channel"
77+
exit 1
78+
fi
79+
80+
if [ -n "$channel" ]; then
81+
ryvn create release ${{ env.SERVICE_NAME }} $version --channel "$channel"
82+
else
83+
ryvn create release ${{ env.SERVICE_NAME }} $version
84+
fi
8885
8986
- name: Create GitHub Tag
87+
if: |
88+
github.ref == format('refs/heads/{0}', github.event.repository.default_branch) &&
89+
!contains(github.event.head_commit.message, '[skip-release]') &&
90+
!contains(github.event.pull_request.title, '[skip-release]')
9091
run: |
91-
new_tag="${{ needs.generate-tag.outputs.new_tag }}"
92+
new_tag="${{ steps.generate-tag.outputs.new_tag }}"
9293
git config --global user.email "github-actions[bot]@users.noreply.github.com"
9394
git config --global user.name "github-actions[bot]"
9495
git tag $new_tag
9596
git push origin $new_tag
9697
9798
- name: Create GitHub Release
99+
if: |
100+
github.ref == format('refs/heads/{0}', github.event.repository.default_branch) &&
101+
!contains(github.event.head_commit.message, '[skip-release]') &&
102+
!contains(github.event.pull_request.title, '[skip-release]')
98103
uses: softprops/action-gh-release@v1
99104
with:
100-
tag_name: ${{ needs.generate-tag.outputs.new_tag }}
101-
name: ${{ needs.generate-tag.outputs.new_tag }}
105+
tag_name: ${{ steps.generate-tag.outputs.new_tag }}
106+
name: ${{ steps.generate-tag.outputs.new_tag }}
102107
generate_release_notes: true
103108
draft: false
104109
prerelease: false

0 commit comments

Comments
 (0)