podman

Форк
0
/
fcos-podman-next-build.yml 
97 строк · 3.8 Кб
1
name: Build FCOS image with packages from rhcontainerbot/podman-next
2

3
on:
4
  push:
5
    branches:
6
      - main
7
  # Run everyday at midnight and pull the latest packages from the copr
8
  schedule:
9
    - cron: '0 0 * * *'
10

11
env:
12
  IMAGE_NAME: fcos
13
  # IMAGE_ARCHS has to be comma separated
14
  IMAGE_ARCHS: amd64, arm64
15
  IMAGE_REGISTRY: quay.io/podman
16
  COPR_OWNER: rhcontainerbot
17
  COPR_PROJECT: podman-next
18

19
jobs:
20
  fcos-podman-next-image-build:
21
    runs-on: ubuntu-latest
22

23
    steps:
24
    - name: Install qemu dependency
25
      run: |
26
        sudo apt update
27
        sudo apt -y install qemu-user-static
28

29
    - name: Set up wait-for-copr
30
      # Do not run on scheduled nightly builds
31
      if: ${{ github.event_name != 'schedule' }}
32
      run: |
33
        pip3 install git+https://github.com/packit/wait-for-copr.git@main
34

35
    - name: Check out code
36
      uses: actions/checkout@v4
37

38
    - name: Get short SHA from HEAD
39
      run: echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
40
      id: short_sha
41

42
    - name: Wait for successful podman-next build with the latest commit
43
      # Do not run on scheduled nightly builds
44
      if: ${{ github.event_name != 'schedule' }}
45
      run: |
46
        # TODO: add this in the Containerfile itself or as a --build-arg
47
        wait-for-copr --owner ${{ env.COPR_OWNER }} --project ${{ env.COPR_PROJECT }} podman ${{ env.SHORT_SHA }}
48
        echo "podman-next build successful."
49

50
    - name: Build FCOS Image
51
      id: build_image_multiarch
52
      # Ref: https://github.com/redhat-actions/buildah-build
53
      uses: redhat-actions/buildah-build@v2
54
      with:
55
        image: ${{ env.IMAGE_NAME }}
56
        tags: ${{ env.COPR_PROJECT }} podman-${{ env.SHORT_SHA }}
57
        archs: ${{ env.IMAGE_ARCHS }}
58
        containerfiles: ./contrib/podman-next/fcos-podmanimage/Containerfile
59
        labels: |
60
          org.opencontainers.image.title=fcos-podman-next image
61
          org.opencontainers.image.source=https://raw.githubusercontent.com/${{ github.repository }}/${{ github.sha }}/contrib/podman-next/fcos-podmanimage/Containerfile
62
          org.opencontainers.image.url=https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
63
          org.opencontainers.image.description=FCOS image with rpms from rhcontainerbot/podman-next copr
64
          org.opencontainers.image.revision=${{ github.sha }}
65

66

67
    - name: Echo Outputs
68
      run: |
69
        echo "Image: ${{ steps.build_image_multiarch.outputs.image }}"
70
        echo "Tags: ${{ steps.build_image_multiarch.outputs.tags }}"
71
        echo "Tagged Image: ${{ steps.build_image_multiarch.outputs.image-with-tag }}"
72

73
    - name: Check images created
74
      run: buildah images | grep '${{ env.IMAGE_NAME }}'
75

76
    - name: Check image metadata
77
      run: |
78
        set -x
79
        # COPR_PROJECT envvar is used for the `podman-next` floating tag
80
        buildah inspect ${{ steps.build_image_multiarch.outputs.image }}:${{ env.COPR_PROJECT }} | jq ".OCIv1.architecture"
81
        buildah inspect ${{ steps.build_image_multiarch.outputs.image }}:${{ env.COPR_PROJECT }} | jq ".Docker.architecture"
82
        buildah inspect ${{ steps.build_image_multiarch.outputs.image }}:podman-${{ env.SHORT_SHA }} | jq ".OCIv1.architecture"
83
        buildah inspect ${{ steps.build_image_multiarch.outputs.image }}:podman-${{ env.SHORT_SHA }} | jq ".Docker.architecture"
84

85
    - name: Run image
86
      run: podman run --privileged --rm ${{ steps.build_image_multiarch.outputs.image-with-tag }} podman system info
87

88
    - name: Push to Quay
89
      id: push-to-quay
90
      # Ref: https://github.com/redhat-actions/push-to-registry
91
      uses: redhat-actions/push-to-registry@v2
92
      with:
93
        image: ${{ env.IMAGE_NAME }}
94
        tags: ${{ steps.build_image_multiarch.outputs.tags }}
95
        registry: ${{ env.IMAGE_REGISTRY }}
96
        username: ${{ secrets.QUAY_PODMAN_USERNAME }}
97
        password: ${{ secrets.QUAY_PODMAN_PASSWORD }}
98

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.