-
Notifications
You must be signed in to change notification settings - Fork 8
155 lines (137 loc) · 4.68 KB
/
docker-image.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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
name: Docker Image CI
on:
push:
pull_request:
branches: [ master ]
release:
type: [published]
env:
TEST_TAG_PYTHON: qfobenchmark/python:test
TEST_TAG_DARWIN: qfobenchmark/darwin:test
TEST_TAG_FAS: qfobechmark/fas_bechmark:test
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Docker python meta
id: meta_python
uses: docker/metadata-action@v5
with:
# list of Docker images to use as base name for tags
images: |
qfobenchmark/python
# generate Docker tags based on the following events/attributes
tags: |
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
- name: Docker darwin meta
id: meta_darwin
uses: docker/metadata-action@v5
with:
# list of Docker images to use as base name for tags
images: |
qfobenchmark/darwin
# generate Docker tags based on the following events/attributes
tags: |
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
- name: Docker FAS meta
id: meta_fas
uses: docker/metadata-action@v5
with:
# list of Docker images to use as base name for tags
images: |
qfobenchmark/fas_benchmark
# generate Docker tags based on the following events/attributes
tags: |
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and export python image to docker for testing
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile_qfo_python
load: true
tags: ${{ env.TEST_TAG_PYTHON }}
- name: Test Python
run: |
docker run --rm -i ${{ env.TEST_TAG_PYTHON }} python --version
- name: Build and export darwin image to docker for testing
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile_qfo_darwin
load: true
tags: ${{ env.TEST_TAG_DARWIN }}
- name: Test Darwin image
run: |
mkdir -p output
docker run --rm -i -v $PWD/output:/out ${{ env.TEST_TAG_DARWIN }} bash -c "echo 'gigahertz(); done' | darwin -q -E -o /out/speed.txt"
echo "$?"
ls -l output/
- name: Build and export fas_benchmark image to docker for testing
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile_qfo_fas
load: true
tags: ${{ env.TEST_TAG_FAS }}
- name: Test FAS
run: |
docker run --rm -i ${{ env.TEST_TAG_FAS }} fas.runMultiTaxa --version
- name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile_qfo_python
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta_python.outputs.tags }}
labels: ${{ steps.meta_python.outputs.labels }}
- name: Build and push darwin
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile_qfo_darwin
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta_darwin.outputs.tags }}
labels: ${{ steps.meta_darwin.outputs.labels }}
- name: Build and push fas
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile_qfo_fas
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta_fas.outputs.tags }}
labels: ${{ steps.meta_fas.outputs.labels }}