-
Notifications
You must be signed in to change notification settings - Fork 353
105 lines (93 loc) · 3.52 KB
/
container-rebuild-action.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
# ======================================
# WARNING!
# THIS FILE IS GENERATED FROM A TEMPLATE
# DO NOT EDIT THIS FILE MANUALLY!
# ======================================
# The template is located in: container-rebuild-action.yml.j2
name: Rebuild container images
# Rebuilds both ci and rpm container images for a given "target". Currently known targets:
# - master
# - eln
# - fedora-NN
#
# Image is:
# - built from the repo at ref <branch>,
# - based on the right container according to branch settings, or optionally on <base-container> if set,
# - tagged as quay.io/rhinstaller/anaconda-{ci|rpm}:<container-tag>.
#
# See also inputs below.
# Reusable workflow, does not run on its own. Typically, use in an action this way:
# jobs:
# foo:
# uses: ./.github/workflows/container-rebuild-action.yml
# secrets: inherit
# with:
# container-tag: foo
# branch: foo
on:
workflow_call:
inputs:
container-tag:
required: true
type: string
branch:
required: true
type: string
base-container:
required: false
type: string
# secrets consumed: QUAY_USERNAME, QUAY_PASSWORD
# these are provided by using the quay.io environment below
permissions:
contents: read
jobs:
refresh-container:
name: Refresh anaconda container
runs-on: ubuntu-22.04
environment: quay.io
strategy:
fail-fast: false
matrix:
container-type: ['ci', 'rpm']
env:
CI_TAG: '${{ inputs.container-tag }}'
timeout-minutes: 60
steps:
- name: Checkout anaconda repository
uses: actions/checkout@v4
with:
ref: ${{ inputs.branch }}
- name: Build anaconda-${{ matrix.container-type }} container
run: |
BASE_CONTAINER=${{ inputs.base-container }}
make -f Makefile.am anaconda-${{ matrix.container-type }}-build ${BASE_CONTAINER:+BASE_CONTAINER=}${BASE_CONTAINER:-}
- name: Run tests in anaconda-ci container
if: matrix.container-type == 'ci'
run: |
# put the log in the output, where it's easy to read and link to
make -f Makefile.am container-ci || { cat test-logs/test-suite.log; exit 1; }
- name: Run tests in anaconda-rpm container
if: matrix.container-type == 'rpm'
run: |
# put the log in the output, where it's easy to read and link to
make -f Makefile.am container-rpm-test || { cat test-logs/test-suite.log; exit 1; }
- name: Upload test and coverage logs from local testing
if: always()
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.container-tag }}-${{ matrix.container-type }}-logs
path: |
test-logs/test-suite.log
test-logs/unit_tests.log
test-logs/pylint/runpylint*.log
test-logs/coverage-*.log
- name: Login to container registry
run: podman login -u ${{ secrets.QUAY_USERNAME }} -p ${{ secrets.QUAY_PASSWORD }} quay.io
# we can hardcode the path to the image here because this will be executed only for master image
- name: Add latest tag for master container
if: ${{ inputs.container-tag == 'master' }}
run: |
podman tag quay.io/rhinstaller/anaconda-${{ matrix.container-type }}:master quay.io/rhinstaller/anaconda-${{ matrix.container-type }}:latest
CI_TAG=latest make -f Makefile.am anaconda-${{ matrix.container-type }}-push
- name: Push container to registry
run: make -f Makefile.am anaconda-${{ matrix.container-type }}-push