Skip to content

Commit d5dc620

Browse files
authored
Implemented release workflow using bzlrelease. (#43)
Implemented release workflow using bzlrelease. Renamed CI workflow and updated to use cgrindel/gha_set_up_bazel.
1 parent 26658f1 commit d5dc620

File tree

5 files changed

+127
-13
lines changed

5 files changed

+127
-13
lines changed

.github/workflows/bazel.yml renamed to .github/workflows/ci.yml

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build
1+
name: CI for PR Merge
22

33
on:
44
pull_request:
@@ -12,17 +12,9 @@ jobs:
1212
steps:
1313
- uses: actions/checkout@v2
1414

15-
- name: Write local.bazelrc File
16-
shell: bash
17-
run: |
18-
cat >local.bazelrc <<EOF
19-
common --config=ci
20-
EOF
21-
22-
- name: Output the Bazel Info
23-
shell: bash
24-
run: |
25-
bazelisk info
15+
- uses: cgrindel/gha_set_up_bazel@v1
16+
with:
17+
repo_name: rules_swiftformat
2618

2719
- name: Execute Tests
2820
shell: bash

.github/workflows/create_release.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Create Release
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
release_tag:
7+
required: true
8+
type: string
9+
reset_tag:
10+
type: boolean
11+
default: false
12+
base_branch:
13+
description: The branch being merged to.
14+
type: string
15+
default: main
16+
17+
jobs:
18+
create_release:
19+
runs-on: ubuntu-latest
20+
env:
21+
CC: clang
22+
23+
steps:
24+
25+
# Check out your code
26+
- uses: actions/checkout@v2
27+
28+
# Generate a token that has permssions to create a release and create PRs.
29+
- uses: tibdex/github-app-token@v1
30+
id: generate_token
31+
with:
32+
app_id: ${{ secrets.APP_ID }}
33+
private_key: ${{ secrets.APP_PRIVATE_KEY }}
34+
35+
# Configure the git user for the repository
36+
- uses: cgrindel/gha_configure_git_user@v1
37+
38+
# Create the release
39+
- uses: cgrindel/gha_create_release@v1
40+
with:
41+
release_tag: ${{ github.event.inputs.release_tag }}
42+
reset_tag: ${{ github.event.inputs.reset_tag }}
43+
base_branch: ${{ github.event.inputs.base_branch }}
44+
github_token: ${{ steps.generate_token.outputs.token }}
45+

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ out [the documentation](/doc/) and [the examples](/examples/) for more informati
2626

2727
Add the following to your `WORKSPACE` file to add this repository and its dependencies.
2828

29+
<!-- BEGIN WORKSPACE SNIPPET -->
2930
```python
30-
3131
# Download and configure rules_swiftformat.
3232

3333
http_archive(
@@ -78,6 +78,7 @@ load("@cgrindel_rules_swiftformat//swiftformat:load_package.bzl", "swiftformat_l
7878

7979
swiftformat_load_package()
8080
```
81+
<!-- END WORKSPACE SNIPPET -->
8182

8283
### 2. Update the `BUILD.bazel` at the root of your workspace
8384

release/BUILD.bazel

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
load("@cgrindel_bazel_starlib//bzlformat:defs.bzl", "bzlformat_pkg")
2+
load(
3+
"@cgrindel_bazel_starlib//bzlrelease:defs.bzl",
4+
"create_release",
5+
"generate_release_notes",
6+
"generate_workspace_snippet",
7+
"update_readme",
8+
)
9+
10+
# MARK: - Release
11+
12+
generate_workspace_snippet(
13+
name = "generate_workspace_snippet",
14+
template = "workspace_snippet.tmpl",
15+
)
16+
17+
generate_release_notes(
18+
name = "generate_release_notes",
19+
generate_workspace_snippet = ":generate_workspace_snippet",
20+
)
21+
22+
update_readme(
23+
name = "update_readme",
24+
generate_workspace_snippet = ":generate_workspace_snippet",
25+
)
26+
27+
create_release(
28+
name = "create",
29+
workflow_name = "Create Release",
30+
)
31+
32+
bzlformat_pkg(name = "bzlformat")

release/workspace_snippet.tmpl

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Download and configure rules_swiftformat.
2+
3+
${http_archive_statement}
4+
5+
load("@cgrindel_rules_swiftformat//swiftformat:deps.bzl", "swiftformat_rules_dependencies")
6+
7+
swiftformat_rules_dependencies()
8+
9+
# Configure the dependencies for rules_swiftformat
10+
11+
load(
12+
"@cgrindel_bazel_starlib//:deps.bzl",
13+
"bazel_starlib_dependencies",
14+
)
15+
16+
bazel_starlib_dependencies()
17+
18+
load(
19+
"@cgrindel_rules_spm//spm:deps.bzl",
20+
"spm_rules_dependencies",
21+
)
22+
23+
spm_rules_dependencies()
24+
25+
load(
26+
"@build_bazel_rules_swift//swift:repositories.bzl",
27+
"swift_rules_dependencies",
28+
)
29+
30+
swift_rules_dependencies()
31+
32+
load(
33+
"@build_bazel_rules_swift//swift:extras.bzl",
34+
"swift_rules_extra_dependencies",
35+
)
36+
37+
swift_rules_extra_dependencies()
38+
39+
# We are using rules_spm to download and build SwiftFormat. The following will configure
40+
# rules_spm to do that.
41+
42+
load("@cgrindel_rules_swiftformat//swiftformat:load_package.bzl", "swiftformat_load_package")
43+
44+
swiftformat_load_package()

0 commit comments

Comments
 (0)