-
Notifications
You must be signed in to change notification settings - Fork 12
136 lines (112 loc) · 3.05 KB
/
main.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
130
131
132
133
134
135
136
name: Main branch
on:
push:
branches:
- main
schedule:
- cron: "0 0 * * 0"
jobs:
cache:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- name: Build container
uses: docker/build-push-action@v5
with:
context: compose
push: true
tags: ghcr.io/adfinis/pyaptly/cache:latest
cache-from: type=registry,ref=ghcr.io/adfinis/pyaptly/cache:gha
cache-to: type=registry,ref=ghcr.io/adfinis/pyaptly/cache:gha,mode=max
test:
runs-on: ubuntu-latest
needs: [cache]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- name: Build container
uses: docker/build-push-action@v5
with:
context: compose
push: false
load: true
tags: ghcr.io/adfinis/pyaptly/cache:latest
cache-from: type=registry,ref=ghcr.io/adfinis/pyaptly/cache:gha
- name: Run tests
run: |
HYPOTHESIS_PROFILE=ci make test
docs:
runs-on: ubuntu-latest
needs: [cache]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- name: Build container
uses: docker/build-push-action@v5
with:
context: compose
push: false
load: true
tags: ghcr.io/adfinis/pyaptly/cache:latest
cache-from: type=registry,ref=ghcr.io/adfinis/pyaptly/cache:gha
- name: Generate the docs
run: |
make docs
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: html-docs
path: docs/_build/html/
- name: Deploy
uses: peaceiris/actions-gh-pages@v4
if: github.ref == 'refs/heads/main'
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: docs/_build/html
package:
runs-on: ubuntu-latest
needs: [test]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- name: Build container
uses: docker/build-push-action@v5
with:
context: compose
push: false
load: true
tags: ghcr.io/adfinis/pyaptly/cache:latest
cache-from: type=registry,ref=ghcr.io/adfinis/pyaptly/cache:gha
- name: Run tests
run: |
make build-packages
make rebuild-packages
- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
name: packages
path: dist
retention-days: 90