-
Notifications
You must be signed in to change notification settings - Fork 309
58 lines (57 loc) · 1.83 KB
/
dev_container.yml
File metadata and controls
58 lines (57 loc) · 1.83 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
---
name: dev_container
on:
push:
branches:
- "main"
pull_request:
branches:
- main
workflow_dispatch:
jobs:
docker:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-24.04
python: "3.12"
- os: ubuntu-24.04-arm
python: "3.12"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login to Quay.io
if: github.event_name == 'push' && github.ref_name == 'main'
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_ROBOT_TOKEN }}
- name: Prepare image tag
id: tag
run: |
# Derive a safe tag: prefer head ref for PRs, otherwise ref name.
if [ "${{ github.event_name }}" = "pull_request" ]; then
raw_tag="${{ github.head_ref }}"
else
raw_tag="${{ github.ref_name }}"
fi
# Replace any characters invalid in container tags with '-'
safe_tag=$(echo "$raw_tag" | sed -E 's#[^A-Za-z0-9_.-]#-#g')
# Avoid empty tag; fallback to short SHA
if [ -z "$safe_tag" ]; then
safe_tag=${GITHUB_SHA::7}
fi
echo "safe_tag=$safe_tag" >> $GITHUB_OUTPUT
- name: Build and push
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4
env:
QUAY_URI: quay.io/ceph-infra/teuthology-dev
QUAY_TAG: ${{ steps.tag.outputs.safe_tag }}
with:
context: .
file: containers/teuthology-dev/Dockerfile
push: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
tags: ${{ env.QUAY_URI }}:${{ env.QUAY_TAG }}
outputs: type=image,name=target