-
-
Notifications
You must be signed in to change notification settings - Fork 1
122 lines (112 loc) · 3.54 KB
/
spec.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
on:
push:
branches:
- main
pull_request:
branches: [main]
jobs:
build:
timeout-minutes: 15
runs-on: ubuntu-latest
services:
# Label used to access the service container
postgres:
# Docker Hub image
image: postgres
# Provide the password for postgres
env:
POSTGRES_DB: authority_db
POSTGRES_USER: auth_user
POSTGRES_PASSWORD: auth_pass
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Installs Crystal
uses: crystal-lang/install-crystal@v1
- name: Install Geckodriver
run: |
wget https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz
sudo tar -xvf geckodriver-v0.26.0-linux64.tar.gz
sudo mv geckodriver /usr/local/bin/
cd /usr/local/bin/
sudo chmod +x geckodriver
- name: Crystal Ameba Linter
uses: crystal-ameba/github-action@v0.2.12
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install Firefox
run: sudo apt-get install firefox -y
- name: Install Dependencies
run: shards install
- name: Build Authority Server
run: shards build
- name: Run tests
run: crystal spec
env:
LOG_LEVEL: "debug"
CRYSTAL_WORKERS: 4
PORT_REUSE: true
SECRET_KEY: secret_key
REFRESH_TTL: 60
CODE_TTL: 5
ACCESS_TOKEN_TTL: 60
ERROR_TEMPLATE: ""
SESSION_KEY: "authority.sess"
SESSION_SECRET: "K,n:aT5CY4Trkg2JjS\e/?F[?e(Pjjhgd"
BASE_URL: http://localhost:4000
DEVICE_CODE_TTL: 300
TEMPLATE_PATH: ./public/templates
DATABASE_URL: postgres://auth_user:auth_pass@localhost:5432/authority_db?initial_pool_size=10&checkout_timeout=3
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/semantic-version@v4.0.2
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: main
masterBranchName: main
createPR: false
branch: main
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: true