Skip to content

Commit 082307c

Browse files
authored
prepare pipeline for automated releases (#1)
1 parent 5bac42d commit 082307c

File tree

7 files changed

+53047
-49
lines changed

7 files changed

+53047
-49
lines changed

.env.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
GITHUB_TOKEN=dry-run-release-token

.github/workflows/publish.yml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: publish
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
github-release:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
contents: write
12+
steps:
13+
- name: 🏗 Setup repo
14+
uses: actions/checkout@v4
15+
16+
- name: 🏗 Setup Bun
17+
uses: oven-sh/setup-bun@v2
18+
19+
- name: 📦 Install dependencies
20+
run: bun install
21+
22+
- name: 🔨 Compile sources
23+
run: bun compile
24+
25+
- name: 🎁 Package extension
26+
run: bun vsce package
27+
28+
- name: 📋 Add package to release
29+
uses: softprops/action-gh-release@v1
30+
with:
31+
files: vscode-react-native-directory-*.vsix
32+
tag_name: ${{ github.ref_name }}
33+
34+
vscode-marketplace:
35+
runs-on: ubuntu-latest
36+
steps:
37+
- name: 🏗 Setup repo
38+
uses: actions/checkout@v4
39+
40+
- name: 🏗 Setup Bun
41+
uses: oven-sh/setup-bun@v2
42+
43+
- name: 📦 Install dependencies
44+
run: bun install
45+
46+
- name: 🔨 Compile sources
47+
run: bun compile
48+
49+
- name: 🎁 Package extension
50+
run: bun vsce package
51+
52+
- name: 🚀 Publish to Visual Studio Marketplace
53+
run: bun vsce publish
54+
env:
55+
VSCE_PAT: ${{ secrets.VSCODE_MARKETPLACE_TOKEN }}
56+
57+
open-vsx:
58+
runs-on: ubuntu-latest
59+
steps:
60+
- name: 🏗 Setup repo
61+
uses: actions/checkout@v4
62+
63+
- name: 🏗 Setup Bun
64+
uses: oven-sh/setup-bun@v2
65+
66+
- name: 📦 Install dependencies
67+
run: bun install
68+
69+
- name: 🔨 Compile sources
70+
run: bun compile
71+
72+
- name: 🎁 Package extension
73+
run: bun vsce package --out ./vscode-react-native-directory.vsix
74+
75+
- name: 🚀 Publish to Open VSX
76+
run: bun ovsx publish ./vscode-react-native-directory.vsix
77+
env:
78+
OVSX_PAT: ${{ secrets.OPENVSX_TOKEN }}

.github/workflows/release.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: release
2+
3+
on:
4+
push:
5+
branches: [main]
6+
workflow_dispatch:
7+
inputs:
8+
release:
9+
description: 'Type "release" to create the release (`main` branch only)!'
10+
required: false
11+
12+
concurrency:
13+
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
14+
cancel-in-progress: true
15+
16+
jobs:
17+
dryrun:
18+
if: ${{ github.ref != 'refs/heads/main' || github.event.inputs.release != 'release' }}
19+
runs-on: ubuntu-latest
20+
permissions:
21+
contents: write
22+
issues: read
23+
pull-requests: read
24+
steps:
25+
- name: 🏗 Setup repo
26+
uses: actions/checkout@v4
27+
28+
- name: 🏗 Setup Bun
29+
uses: oven-sh/setup-bun@v2
30+
31+
- name: 📦 Install dependencies
32+
run: bun install
33+
34+
- name: 📋 Dry-running release
35+
run: bun semantic-release --dry-run
36+
env:
37+
GITHUB_TOKEN: ${{ github.token }}
38+
39+
create:
40+
if: ${{ github.ref == 'refs/heads/main' && github.event.inputs.release == 'release' }}
41+
runs-on: ubuntu-latest
42+
steps:
43+
- name: 🏗 Setup repo
44+
uses: actions/checkout@v4
45+
46+
- name: 🏗 Setup Bun
47+
uses: oven-sh/setup-bun@v2
48+
49+
- name: 📦 Install dependencies
50+
run: bun install
51+
52+
- name: 📋 Release extension
53+
run: bun semantic-release
54+
env:
55+
GITHUB_TOKEN: ${{ secrets.GH_RELEASE_TOKEN }}
56+
GIT_AUTHOR_NAME: '[bot] Release Agent'
57+
GIT_COMMITTER_NAME: '[bot] Release Agent'

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
build
22
node_modules
33

4+
# Local ENV
5+
.env
6+
47
# VS Code
58
*.vsix
69

0 commit comments

Comments
 (0)