forked from tuist/tuist
-
Notifications
You must be signed in to change notification settings - Fork 0
140 lines (130 loc) · 3.72 KB
/
Copy pathcache.yml
File metadata and controls
140 lines (130 loc) · 3.72 KB
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
130
131
132
133
134
135
136
137
138
139
140
name: Cache
on:
push:
branches:
- main
paths:
- cache/**
- tuist_common/**
- .github/workflows/cache.yml
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- cache/**
- tuist_common/**
- .github/workflows/cache.yml
merge_group: {}
permissions:
contents: read
concurrency:
group: cache-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
defaults:
run:
working-directory: cache
env:
MISE_VERSION: "2026.5.15"
MISE_GITHUB_TOKEN: ${{ github.token }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MISE_GITHUB_ATTESTATIONS: 0
MISE_CEILING_PATHS: ${{ github.workspace }}
jobs:
format:
name: Format
runs-on: tuist-linux
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- name: Restore Mix Cache
uses: actions/cache@v4
with:
path: |
cache/deps
cache/_build
key: cache-mix-${{ hashFiles('cache/mix.lock') }}
- uses: jdx/mise-action@v4.0.1
with:
version: ${{ env.MISE_VERSION }}
install_args: "erlang elixir ruby"
working_directory: cache
- name: Install dependencies
run: mise run --skip-tools install
- name: Check format
run: mise run --skip-tools format --check
credo:
name: Credo
runs-on: tuist-linux
timeout-minutes: 15
if: github.event.pull_request.draft == false || github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
- name: Restore Mix Cache
uses: actions/cache@v4
with:
path: |
cache/deps
cache/_build
key: cache-mix-${{ hashFiles('cache/mix.lock') }}
- uses: jdx/mise-action@v4.0.1
with:
version: ${{ env.MISE_VERSION }}
install_args: "erlang elixir ruby"
working_directory: cache
- name: Install dependencies
run: mise run --skip-tools install
- name: Run Credo
run: mise run --skip-tools credo
test:
name: Test
runs-on: tuist-linux
timeout-minutes: 15
if: github.event.pull_request.draft == false || github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
- name: Restore Mix Cache
uses: actions/cache@v4
with:
path: |
cache/deps
cache/_build
key: cache-mix-${{ hashFiles('cache/mix.lock') }}
- uses: jdx/mise-action@v4.0.1
with:
version: ${{ env.MISE_VERSION }}
install_args: "erlang elixir ruby"
working_directory: cache
- name: Install dependencies
run: mise run --skip-tools install
- name: Run tests
run: mise run --skip-tools test
compile-prod:
name: Compile (prod)
runs-on: tuist-linux
timeout-minutes: 15
if: github.event.pull_request.draft == false || github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
- name: Restore Mix Cache
uses: actions/cache@v4
with:
path: |
cache/deps
cache/_build
key: cache-mix-${{ hashFiles('cache/mix.lock') }}
- uses: jdx/mise-action@v4.0.1
with:
version: ${{ env.MISE_VERSION }}
install_args: "erlang elixir ruby"
working_directory: cache
- name: Install dependencies
run: mise run --skip-tools install
- name: Compile with MIX_ENV=prod
run: MIX_ENV=prod mix compile --warnings-as-errors
docker-compose:
name: Docker Compose
runs-on: tuist-linux
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: Validate docker-compose.yml
run: docker compose config --quiet