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