docker-scripts/.github/workflows/epicmorg.ecosystem.images.giltab.runners.yml
2025-04-28 01:01:05 +03:00

195 lines
6.2 KiB
YAML

name: EpicMorg EcoSystem Gitlab Runner Images
on:
workflow_dispatch:
schedule:
- cron: '4 4 * * 2,4,6'
jobs:
build-main-runners:
name: Build Main Gitlab Runners
runs-on: [ ubuntu-24.04 ]
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: 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 Minimal Gitlab Runner
uses: nick-fields/retry@v3
with:
retry_wait_seconds: 45
timeout_minutes: 600
max_attempts: 15
command: cd linux/ecosystem/gitlab/runner/minimal && pwd && make build && make deploy
- name: Build and Deploy Main Gitlab Runner
uses: nick-fields/retry@v3
with:
retry_wait_seconds: 45
timeout_minutes: 600
max_attempts: 15
command: cd linux/ecosystem/gitlab/runner/latest && pwd && make build && make deploy
build-additional-runners:
name: Build Additional Gitlab Runner
runs-on: [ ubuntu-24.04 ]
needs: build-main-runners
strategy:
matrix:
agent_type: [
# AMXX SDK
{type: 'amxx-sdk', version: '1.9', path: 'amxx-sdk/1.9'},
{type: 'amxx-sdk', version: '1.10', path: 'amxx-sdk/1.10'},
# Android SDK
{type: 'android-sdk', version: 'latest', path: 'android-sdk'},
# Atlassian SDK
{type: 'atlassian-sdk', version: 'latest', path: 'atlassian-sdk'},
# Node.js versions
{type: 'node', version: '0.12', path: 'node0.12'},
{type: 'node', version: '4', path: 'node4'},
{type: 'node', version: '5', path: 'node5'},
{type: 'node', version: '6', path: 'node6'},
{type: 'node', version: '7', path: 'node7'},
{type: 'node', version: '8', path: 'node8'},
{type: 'node', version: '9', path: 'node9'},
{type: 'node', version: '10', path: 'node10'},
{type: 'node', version: '11', path: 'node11'},
{type: 'node', version: '12', path: 'node12'},
{type: 'node', version: '13', path: 'node13'},
{type: 'node', version: '14', path: 'node14'},
{type: 'node', version: '15', path: 'node15'},
{type: 'node', version: '16', path: 'node16'},
{type: 'node', version: '17', path: 'node17'},
{type: 'node', version: '18', path: 'node18'},
{type: 'node', version: '19', path: 'node19'},
{type: 'node', version: '20', path: 'node20'},
{type: 'node', version: '21', path: 'node21'},
{type: 'node', version: '22', path: 'node22'},
{type: 'node', version: '23', path: 'node23'},
# PHP versions
{type: 'php', version: '5.6', path: 'php56'},
{type: 'php', version: '7.0', path: 'php70'},
{type: 'php', version: '7.1', path: 'php71'},
{type: 'php', version: '7.2', path: 'php72'},
{type: 'php', version: '7.3', path: 'php73'},
{type: 'php', version: '7.4', path: 'php74'},
{type: 'php', version: '8.0', path: 'php80'},
{type: 'php', version: '8.1', path: 'php81'},
{type: 'php', version: '8.2', path: 'php82'},
{type: 'php', version: '8.3', path: 'php83'},
{type: 'php', version: '8.4', path: 'php84'},
]
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 Gitlab Runner ${{ matrix.agent_type.type }} ${{ matrix.agent_type.version }}
uses: nick-fields/retry@v3
with:
retry_wait_seconds: 45
timeout_minutes: 600
max_attempts: 15
command: cd linux/ecosystem/gitlab/runner/${{ matrix.agent_type.path }} && pwd && make build && make deploy
- name: Cleanup
uses: nick-fields/retry@v3
with:
retry_wait_seconds: 45
timeout_minutes: 600
max_attempts: 15
command: make clean