metwork-trigger-master #2928
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | 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 -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: ubuntu-latest | |
| 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: dispatch plugins rocky8 from rocky8 tag | |
| if: ${{ github.ref_type == 'tag' && 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-plugins | |
| event-type: metwork-trigger-${{ steps.SetVariables.outputs.branch }} | |
| client-payload: '{"branch": "${{ steps.SetVariables.outputs.branch }}", "tag": "${{ github.ref_name }}", "repo": "mfdata", "rocky_version": "8"}' | |
| - name: dispatch plugins rocky9 from rocky8 tag | |
| if: ${{ github.ref_type == 'tag' && 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-plugins | |
| event-type: metwork-trigger-${{ steps.SetVariables.outputs.branch }} | |
| client-payload: '{"branch": "${{ steps.SetVariables.outputs.branch }}", "tag": "${{ github.ref_name }}", "repo": "mfdata", "rocky_version": "9"}' | |
| - name: dispatch plugins rocky10 from rocky8 tag | |
| if: ${{ github.ref_type == 'tag' && 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-plugins | |
| event-type: metwork-trigger-${{ steps.SetVariables.outputs.branch }} | |
| client-payload: '{"branch": "${{ steps.SetVariables.outputs.branch }}", "tag": "${{ github.ref_name }}", "repo": "mfdata", "rocky_version": "10"}' | |
| - name: dispatch plugins buildimage rocky8 from rocky8 | |
| if: ${{ github.event_name != 'pull_request' && steps.SetVariables.outputs.skip_dispatch == 'false' && 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-mfdataplugins-centos8-buildimage | |
| event-type: metwork-trigger-${{ steps.SetVariables.outputs.branch }} | |
| client-payload: '{"branch": "${{ steps.SetVariables.outputs.branch }}", "os": "${{ steps.SetVariables.outputs.os }}"}' | |
| - name: dispatch plugins buildimage rocky9 from rocky8 | |
| if: ${{ github.event_name != 'pull_request' && steps.SetVariables.outputs.skip_dispatch == 'false' && 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-mfdataplugins-rocky9-image | |
| event-type: metwork-trigger-${{ steps.SetVariables.outputs.branch }} | |
| client-payload: '{"branch": "${{ steps.SetVariables.outputs.branch }}", "os": "${{ steps.SetVariables.outputs.os }}"}' | |