Skip to content

Merge remote-tracking branch 'origin/integration' into experimental_p… #3558

Merge remote-tracking branch 'origin/integration' into experimental_p…

Merge remote-tracking branch 'origin/integration' into experimental_p… #3558

Workflow file for this run

name: CI
on:
push:
branches:
- master
- integration
- experimental*
- release_*
- ci*
- pci*
tags:
- v*
pull_request:
repository_dispatch:
types:
- metwork-trigger*
env:
DOCKER_RUN_OPTIONS: "-v ${{ github.workspace }}:/src -v /buildcache:/buildcache -e GITHUB_REF -e GITHUB_RUN_NUMBER -e GITHUB_SHA -e GITHUB_REPOSITORY"
WORKFLOW_SCRIPTS_DIR: .github/workflows
DOCKER_WORKFLOW_SCRIPTS_DIR: /src/.github/workflows
PAYLOAD_BRANCH: ${{ github.event.client_payload.branch}}
PAYLOAD_OS: ${{ github.event.client_payload.os}}
jobs:
ci_build:
runs-on: [self-hosted, metwork]
steps:
- name: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.client_payload.branch || github.ref }}
- name: set variables
id: SetVariables
run: |
${WORKFLOW_SCRIPTS_DIR}/set_variables.sh
- name: debug env
run: |
env
- name: bootstrap
if: ${{ steps.SetVariables.outputs.branch != 'null' }}
run: |
TARGET_DIR=${{ steps.SetVariables.outputs.target_dir }}
BRANCH=${{ steps.SetVariables.outputs.branch }}
OS_VERSION=${{ steps.SetVariables.outputs.os }}
TAG=${{ steps.SetVariables.outputs.tag }}
DEP_DIR=${{ steps.SetVariables.outputs.dep_dir }}
BUILDIMAGE=${{ steps.SetVariables.outputs.buildimage }}
docker pull ${BUILDIMAGE}
docker run ${DOCKER_RUN_OPTIONS} -e TARGET_DIR=${TARGET_DIR} -e BRANCH=${BRANCH} -e TAG=${TAG} -e DEP_DIR=${DEP_DIR} -e OS_VERSION=${OS_VERSION} --rm ${BUILDIMAGE} /bin/bash -c "${DOCKER_WORKFLOW_SCRIPTS_DIR}/bootstrap_ci.sh"
- name: build
if: ${{ steps.SetVariables.outputs.branch != 'null' }}
id: BuildStep
run: |
TARGET_DIR=${{ steps.SetVariables.outputs.target_dir }}
BRANCH=${{ steps.SetVariables.outputs.branch }}
OS_VERSION=${{ steps.SetVariables.outputs.os }}
TAG=${{ steps.SetVariables.outputs.tag }}
DEP_BRANCH=${{ steps.SetVariables.outputs.dep_branch }}
BUILDIMAGE=${{ steps.SetVariables.outputs.buildimage }}
docker pull ${BUILDIMAGE}
docker run ${DOCKER_RUN_OPTIONS} -e TARGET_DIR=${TARGET_DIR} -e BRANCH=${BRANCH} -e DEP_BRANCH=${DEP_BRANCH} -e TAG=${TAG} -e OS_VERSION=${OS_VERSION} --rm ${BUILDIMAGE} /bin/bash -c "${DOCKER_WORKFLOW_SCRIPTS_DIR}/build.sh"
cat ${{ github.workspace }}/github_output >> ${GITHUB_OUTPUT}
- name: publish buildlogs
if: ${{ github.event_name != 'pull_request' && steps.SetVariables.outputs.branch != 'null' }}
uses: thebaptiste/ssh-scp-ssh-pipelines@metwork
env:
REMOTE: ${{ steps.SetVariables.outputs.buildlog_dir }}
LOCAL: ${{ github.workspace }}/buildlogs
with:
host: ${{ secrets.METWORKPUB_HOST }}
user: ${{ secrets.METWORKPUB_USERNAME }}
pass: ${{ secrets.METWORKPUB_PASSWORD }}
port: 22
first_ssh: |
mkdir -p ${REMOTE}
scp: |
'${LOCAL}/*' => ${REMOTE}
- name: integration tests
if: ${{ steps.SetVariables.outputs.branch != 'null' && steps.BuildStep.outputs.bypass == 'false' }}
run: |
TESTIMAGE=${{ steps.SetVariables.outputs.testimage }}
DEP_BRANCH=${{ steps.SetVariables.outputs.dep_branch }}
BRANCH=${{ steps.SetVariables.outputs.branch }}
OS_VERSION=${{ steps.SetVariables.outputs.os }}
docker pull ${TESTIMAGE}
docker run ${DOCKER_RUN_OPTIONS} -e DEP_BRANCH=${DEP_BRANCH} -e BRANCH=${BRANCH} -e OS_VERSION=${OS_VERSION} --rm ${TESTIMAGE} /bin/bash -c "${DOCKER_WORKFLOW_SCRIPTS_DIR}/integration_tests.sh"
- name: publish rpms
if: ${{ github.event_name != 'pull_request' && steps.BuildStep.outputs.bypass == 'false' && steps.SetVariables.outputs.branch != 'null' }}
uses: thebaptiste/ssh-scp-ssh-pipelines@metwork
env:
REMOTE: ${{ steps.SetVariables.outputs.rpm_dir }}
LOCAL: ${{ github.workspace }}/rpms
with:
host: ${{ secrets.METWORKPUB_HOST }}
user: ${{ secrets.METWORKPUB_USERNAME }}
pass: ${{ secrets.METWORKPUB_PASSWORD }}
port: 22
first_ssh: |
mkdir -p ${REMOTE}
scp: |
'${LOCAL}/metwork-*.rpm' => ${REMOTE}
- name: createrepo
if: ${{ github.event_name != 'pull_request' && steps.BuildStep.outputs.bypass == 'false' && steps.SetVariables.outputs.branch != 'null' }}
uses: thebaptiste/ssh-scp-ssh-pipelines@metwork
env:
REMOTE: ${{ steps.SetVariables.outputs.rpm_dir }}
LOCAL: ${{ github.workspace }}/.github/workflows
with:
host: ${{ secrets.METWORKPUB_HOST }}
user: ${{ secrets.METWORKPUB_USERNAME }}
pass: ${{ secrets.METWORKPUB_PASSWORD }}
port: 22
scp: |
'${LOCAL}/createrepo.sh' => ${REMOTE}
last_ssh: |
cd ${REMOTE}
chmod +x createrepo.sh
./createrepo.sh .
- name: publish doc
if: ${{ github.event_name != 'pull_request' && steps.BuildStep.outputs.bypass == 'false' && steps.SetVariables.outputs.branch != 'null' }}
uses: thebaptiste/ssh-scp-ssh-pipelines@metwork
env:
REMOTE: ${{ steps.SetVariables.outputs.doc_dir }}
LOCAL: ${{ github.workspace }}/html_doc
with:
host: ${{ secrets.METWORKPUB_HOST }}
user: ${{ secrets.METWORKPUB_USERNAME }}
pass: ${{ secrets.METWORKPUB_PASSWORD }}
port: 22
first_ssh: |
rm -rf ${REMOTE}
mkdir -p ${REMOTE}
scp: |
'${LOCAL}/*' => ${REMOTE}
- name: clean cache on failure
if: failure()
run: |
sudo rm -f ${{ steps.BuildStep.outputs.buildcache }}
- name: dispatch mfxxx testimage centos6 from centos6
if: ${{ github.event_name != 'pull_request' && steps.SetVariables.outputs.skip_dispatch == 'false' && steps.SetVariables.outputs.branch != 'null' && steps.BuildStep.outputs.bypass == 'false' && steps.SetVariables.outputs.os == 'centos6' }}
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.METWORK_ACCESS_TOKEN }}
repository: metwork-framework/docker-mfxxx-centos6-testimage
event-type: metwork-trigger-${{ steps.SetVariables.outputs.branch }}
client-payload: '{"branch": "${{ steps.SetVariables.outputs.branch }}", "os": "${{ steps.SetVariables.outputs.os }}"}'
- name: dispatch mfxxx testimage centos7 from centos6
if: ${{ github.event_name != 'pull_request' && steps.SetVariables.outputs.skip_dispatch == 'false' && steps.SetVariables.outputs.branch != 'null' && steps.BuildStep.outputs.bypass == 'false' && steps.SetVariables.outputs.os == 'centos6' }}
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.METWORK_ACCESS_TOKEN }}
repository: metwork-framework/docker-mfxxx-centos7-testimage
event-type: metwork-trigger-${{ steps.SetVariables.outputs.branch }}
client-payload: '{"branch": "${{ steps.SetVariables.outputs.branch }}", "os": "${{ steps.SetVariables.outputs.os }}"}'
- name: dispatch mfxxx testimage centos8 from centos8
if: ${{ github.event_name != 'pull_request' && steps.SetVariables.outputs.skip_dispatch == 'false' && steps.SetVariables.outputs.branch != 'null' && steps.BuildStep.outputs.bypass == 'false' && steps.SetVariables.outputs.os == 'centos8' }}
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.METWORK_ACCESS_TOKEN }}
repository: metwork-framework/docker-mfxxx-centos8-testimage
event-type: metwork-trigger-${{ steps.SetVariables.outputs.branch }}
client-payload: '{"branch": "${{ steps.SetVariables.outputs.branch }}", "os": "${{ steps.SetVariables.outputs.os }}"}'
- name: dispatch mfxxx buildimage centos6 from centos6
if: ${{ github.event_name != 'pull_request' && steps.SetVariables.outputs.skip_dispatch == 'false' && steps.SetVariables.outputs.branch != 'null' && steps.BuildStep.outputs.bypass == 'false' && steps.SetVariables.outputs.os == 'centos6' }}
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.METWORK_ACCESS_TOKEN }}
repository: metwork-framework/docker-mfxxx-centos6-buildimage
event-type: metwork-trigger-${{ steps.SetVariables.outputs.branch }}
client-payload: '{"branch": "${{ steps.SetVariables.outputs.branch }}", "os": "${{ steps.SetVariables.outputs.os }}"}'
- name: dispatch mfxxx buildimage centos7 from centos6
if: ${{ github.event_name != 'pull_request' && steps.SetVariables.outputs.skip_dispatch == 'false' && steps.SetVariables.outputs.branch != 'null' && steps.BuildStep.outputs.bypass == 'false' && steps.SetVariables.outputs.os == 'centos6' }}
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.METWORK_ACCESS_TOKEN }}
repository: metwork-framework/docker-mfxxx-centos7-buildimage
event-type: metwork-trigger-${{ steps.SetVariables.outputs.branch }}
client-payload: '{"branch": "${{ steps.SetVariables.outputs.branch }}", "os": "${{ steps.SetVariables.outputs.os }}"}'
- name: dispatch mfxxx buildimage centos8 from centos6
if: ${{ github.event_name != 'pull_request' && steps.SetVariables.outputs.skip_dispatch == 'false' && steps.SetVariables.outputs.branch != 'null' && steps.BuildStep.outputs.bypass == 'false' && steps.SetVariables.outputs.os == 'centos6' }}
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.METWORK_ACCESS_TOKEN }}
repository: metwork-framework/docker-mfxxx-centos8-buildimage
event-type: metwork-trigger-${{ steps.SetVariables.outputs.branch }}
client-payload: '{"branch": "${{ steps.SetVariables.outputs.branch }}", "os": "${{ steps.SetVariables.outputs.os }}"}'
- name: dispatch mfxxx buildimage centos8 from centos8
if: ${{ github.event_name != 'pull_request' && steps.SetVariables.outputs.skip_dispatch == 'false' && steps.SetVariables.outputs.branch != 'null' && steps.BuildStep.outputs.bypass == 'false' && steps.SetVariables.outputs.os == 'centos8' }}
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.METWORK_ACCESS_TOKEN }}
repository: metwork-framework/docker-mfxxx-centos8-buildimage
event-type: metwork-trigger-${{ steps.SetVariables.outputs.branch }}
client-payload: '{"branch": "${{ steps.SetVariables.outputs.branch }}", "os": "${{ steps.SetVariables.outputs.os }}"}'
- name: chown on build outputs
if: always()
run: |
sudo chown -R githubactions:metworkpub .
sudo chmod -R 775 .