docker-scripts/.github/workflows/epicmorg.ecosystem.images.perforce.yml
2025-04-29 00:40:41 +03:00

102 lines
2.7 KiB
YAML

name: EpicMorg EcoSystem Perforce Images
on:
workflow_dispatch:
schedule:
- cron: '4 4 * * 1,3,5'
jobs:
build-perforce-images:
name: Build Perforce and Proxy Images
runs-on: [ ubuntu-24.04 ]
strategy:
matrix:
version: [
'r16.2',
'r17.1', 'r17.2',
'r18.1', 'r18.2',
'r19.1', 'r19.2',
'r20.1', 'r20.2',
'r21.1', 'r21.2',
'r22.1',
'r23.1', 'r23.2',
'r24.1', 'r24.2',
]
steps:
- uses: actions/checkout@v4
with:
clean: true
show-progress: true
submodules: true
- name: Log into docker registry
uses: nick-fields/retry@v3
with:
retry_wait_seconds: 45
timeout_minutes: 600
max_attempts: 15
command: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
- name: Log into Quay.IO registry
uses: nick-fields/retry@v3
with:
retry_wait_seconds: 45
timeout_minutes: 600
max_attempts: 15
command: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
- name: Check buildah
uses: nick-fields/retry@v3
with:
retry_wait_seconds: 45
timeout_minutes: 600
max_attempts: 15
command: buildah --version
- name: Test Make
uses: nick-fields/retry@v3
with:
retry_wait_seconds: 45
timeout_minutes: 600
max_attempts: 15
command: make
- name: Install requirements.txt
uses: nick-fields/retry@v3
with:
retry_wait_seconds: 45
timeout_minutes: 600
max_attempts: 15
command: make pip
- name: Build and Deploy Perforce ${{ matrix.version }}
uses: nick-fields/retry@v3
with:
retry_wait_seconds: 45
timeout_minutes: 600
max_attempts: 15
command: cd linux/ecosystem/perforce/base/${{ matrix.version }} && pwd && make build && make deploy
- name: Build and Deploy Perforce Proxy ${{ matrix.version }}
uses: nick-fields/retry@v3
with:
retry_wait_seconds: 45
timeout_minutes: 600
max_attempts: 15
command: cd linux/ecosystem/perforce/p4p/${{ matrix.version }} && pwd && make build && make deploy
- name: Final Cleanup
uses: nick-fields/retry@v3
with:
retry_wait_seconds: 45
timeout_minutes: 600
max_attempts: 15
command: make clean