-
Notifications
You must be signed in to change notification settings - Fork 0
129 lines (121 loc) · 3.37 KB
/
crystal.yml
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: Crystal CI
on:
push:
branches: [master]
pull_request:
branches: [master]
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
docs:
runs-on: ubuntu-latest
container:
image: crystallang/crystal
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
run: shards install
- name: Generate Azu API Docs
run: crystal docs
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: "./docs"
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
build:
runs-on: ubuntu-latest
container:
image: crystallang/crystal
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: example
POSTGRES_USER: example
POSTGRES_DB: example
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
# Maps tcp port 5432 on service container to the host
- 5432:5432
steps:
- uses: actions/checkout@v2
- uses: actions/setup-sqlite@v1
with:
sqlite-version: 3.40.0
sqlite-year: 2022
- name: Install dependencies
run: shards install
- name: Check code style
run: crystal tool format --check
- name: Run tests
run: crystal spec
env:
CRYSTAL_ENV: pipeline
CRYSTAL_LOG_SOURCES: "*"
CRYSTAL_LOG_LEVEL: DEBUG
PORT: 4000
PORT_REUSE: false
HOST: 0.0.0.0
release:
runs-on: ubuntu-latest
needs:
- build
if: ${{ success() }}
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Compute Release Version
id: semver
uses: paulhatch/[email protected]
with:
tag_prefix: "v"
major_pattern: "(MAJOR)"
minor_pattern: "(MINOR)"
# A string to determine the format of the version output
format: "${major}.${minor}.${patch}"
# If this is set to true, *every* commit will be treated as a new version.
bump_each_commit: false
- name: Bump Shard Version
id: bump-shard
uses: fjogeleit/yaml-update-action@master
with:
valueFile: shard.yml
propertyPath: version
value: ${{steps.semver.outputs.version}}
commitChange: true
updateFile: true
targetBranch: master
masterBranchName: master
createPR: false
branch: master
message: Set shard version ${{ steps.semver.outputs.version }}
- name: Create Release
id: create_release
uses: actions/create-release@latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{steps.semver.outputs.version_tag}}
release_name: Release v${{steps.semver.outputs.version}}
draft: false
prerelease: false