diff --git a/.github/workflows/unstable.yml b/.github/workflows/unstable.yml new file mode 100644 index 0000000000..ef6c073334 --- /dev/null +++ b/.github/workflows/unstable.yml @@ -0,0 +1,214 @@ +name: unstable_amd64_build + +on: + push: + branches: [ matrix ] + + workflow_dispatch: + +concurrency: + group: ${{ github.ref }} + cancel-in-progress: true + +jobs: + + generate-jobs: + runs-on: ubuntu-20.04 + outputs: + job-strategy-matrix: ${{ steps.generate.outputs.job-strategy-matrix }} + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: 'recursive' + - name: Checkout CI scripts + uses: actions/checkout@v3 + with: + repository: ctu-mrs/ci_scripts + ref: master + path: .ci_scripts + token: ${{ secrets.PUSH_TOKEN }} + - id: generate + run: | + JOB_STRATEGY_MATRIX=$(./.ci/get_build_matrix.sh unstable amd64) + echo "::set-output name=job-strategy-matrix::$JOB_STRATEGY_MATRIX" + +###### AMD64 + + init-artifacts-amd: + runs-on: ubuntu-20.04 + needs: generate-jobs + steps: + - id: execute + run: | + mkdir -p /tmp/artifacts + touch /tmp/artifacts/test.yaml + - name: Save artifacts + uses: actions/upload-artifact@v3 + with: + name: artifacts_amd + path: /tmp/artifacts/ + + build-job-amd: + needs: init-artifacts-amd + runs-on: ubuntu-20.04 + timeout-minutes: 360 # 6 hour timeout + strategy: + matrix: + job: ${{ fromJson(needs.generate-job-strategy-matrix.outputs.job-strategy-matrix) }} + max-parallel: 1 # Run jobs serially + steps: + - name: Load artifacts + uses: actions/download-artifact@v3 + with: + name: artifacts_amd + path: /tmp/artifacts/ + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: 'recursive' + - name: Checkout CI scripts + uses: actions/checkout@v3 + with: + repository: ctu-mrs/ci_scripts + ref: master + path: .ci_scripts + token: ${{ secrets.PUSH_TOKEN }} + - id: build + run: | + .ci/build.sh unstable "${{ matrix.job }}" + - name: Save artifacts + uses: actions/upload-artifact@v3 + with: + name: artifacts_amd + path: /tmp/artifacts/ + + collect_amd_artifacts: + runs-on: ubuntu-20.04 + needs: build-job-amd + env: + PUSH_TOKEN: ${{ secrets.PUSH_TOKEN }} + steps: + - name: Load artifacts + uses: actions/download-artifact@v3 + with: + name: artifacts_amd + path: /tmp/artifacts/ + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: 'recursive' + - name: Checkout CI scripts + uses: actions/checkout@v3 + with: + repository: ctu-mrs/ci_scripts + ref: master + path: .ci_scripts + token: ${{ secrets.PUSH_TOKEN }} + - name: Deploy + run: .ci_scripts/package_build/push_to_ppa.sh unstable /tmp/artifacts + +###### ARM64 + + init-artifacts-arm: + runs-on: ubuntu-20.04 + needs: generate-jobs + steps: + - id: execute + run: | + mkdir -p /tmp/artifacts + touch /tmp/artifacts/test.yaml + - name: Save artifacts + uses: actions/upload-artifact@v3 + with: + name: artifacts_arm + path: /tmp/artifacts/ + + build-job-arm: + needs: init-artifacts-arm + runs-on: ubuntu-20.04 + timeout-minutes: 360 # 6 hour timeout + strategy: + matrix: + job: ${{ fromJson(needs.generate-job-strategy-matrix.outputs.job-strategy-matrix) }} + max-parallel: 1 # Run jobs serially + steps: + - name: Load artifacts + uses: actions/download-artifact@v3 + with: + name: artifacts_arm + path: /tmp/artifacts/ + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: 'recursive' + - name: Checkout CI scripts + uses: actions/checkout@v3 + with: + repository: ctu-mrs/ci_scripts + ref: master + path: .ci_scripts + token: ${{ secrets.PUSH_TOKEN }} + - uses: uraimo/run-on-arch-action@v2 + name: build + + id: build + + with: + arch: aarch64 + distro: ubuntu-20.04 + + githubToken: ${{ github.token }} + + install: | + apt-get update -y + apt-get install -y sudo git curl + echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections + + # Create an artifacts directory + setup: | + mkdir -p "/tmp/artifacts" + mkdir -p "/tmp/repository" + + # Mount the artifacts directory as /artifacts in the container + dockerRunArgs: | + --volume "$PWD:/tmp/repository" + --volume "/tmp/artifacts:/tmp/artifacts" + + # The shell to run commands with in the container + shell: /bin/sh + + # Produce a binary artifact and place it in the mounted volume + run: | + /tmp/repository/.ci/build.sh unstable "${{ matrix.job }}" + + - name: Save artifacts + uses: actions/upload-artifact@v3 + with: + name: artifacts_arm + path: /tmp/artifacts/ + + collect-artifacts-arm: + runs-on: ubuntu-20.04 + needs: build-job-arm + env: + PUSH_TOKEN: ${{ secrets.PUSH_TOKEN }} + steps: + - name: Load artifacts + uses: actions/download-artifact@v3 + with: + name: artifacts_arm + path: /tmp/artifacts/ + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: 'recursive' + - name: Checkout CI scripts + uses: actions/checkout@v3 + with: + repository: ctu-mrs/ci_scripts + ref: master + path: .ci_scripts + token: ${{ secrets.PUSH_TOKEN }} + - name: Deploy + run: .ci_scripts/package_build/push_to_ppa.sh unstable /tmp/artifacts diff --git a/.github/workflows/unstable_amd64.yml b/.github/workflows/unstable_amd64.yml deleted file mode 100644 index 85944c03c0..0000000000 --- a/.github/workflows/unstable_amd64.yml +++ /dev/null @@ -1,107 +0,0 @@ -name: unstable_amd64_build - -on: - push: - branches: [ matrix ] - - workflow_dispatch: - -concurrency: - group: ${{ github.ref }} - cancel-in-progress: true - -jobs: - - establish_artifacts: - runs-on: ubuntu-20.04 - steps: - - id: execute - run: | - mkdir -p /tmp/artifacts - touch /tmp/artifacts/test.yaml - - name: Save artifacts - uses: actions/upload-artifact@v3 - with: - name: artifacts - path: /tmp/artifacts/ - - generate-jobs: - needs: establish_artifacts - runs-on: ubuntu-20.04 - outputs: - job-strategy-matrix: ${{ steps.generate.outputs.job-strategy-matrix }} - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - submodules: 'recursive' - - name: Checkout CI scripts - uses: actions/checkout@v3 - with: - repository: ctu-mrs/ci_scripts - ref: master - path: .ci_scripts - token: ${{ secrets.PUSH_TOKEN }} - - id: generate - run: | - JOB_STRATEGY_MATRIX=$(./.ci/get_build_matrix.sh unstable amd64) - echo "::set-output name=job-strategy-matrix::$JOB_STRATEGY_MATRIX" - - build-job: - needs: generate-jobs - runs-on: ubuntu-20.04 - timeout-minutes: 360 # 6 hour timeout - strategy: - matrix: - job: ${{ fromJson(needs.generate-job-strategy-matrix.outputs.job-strategy-matrix) }} - max-parallel: 1 # Run jobs serially - steps: - - name: Load artifacts - uses: actions/download-artifact@v3 - with: - name: artifacts - path: /tmp/artifacts/ - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - submodules: 'recursive' - - name: Checkout CI scripts - uses: actions/checkout@v3 - with: - repository: ctu-mrs/ci_scripts - ref: master - path: .ci_scripts - token: ${{ secrets.PUSH_TOKEN }} - - id: build - run: | - .ci/build.sh unstable "${{ matrix.job }}" - - name: Save artifacts - uses: actions/upload-artifact@v3 - with: - name: artifacts - path: /tmp/artifacts/ - - collect_artifacts: - runs-on: ubuntu-20.04 - needs: build-job - env: - PUSH_TOKEN: ${{ secrets.PUSH_TOKEN }} - steps: - - name: Load artifacts - uses: actions/download-artifact@v3 - with: - name: artifacts - path: /tmp/artifacts/ - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - submodules: 'recursive' - - name: Checkout CI scripts - uses: actions/checkout@v3 - with: - repository: ctu-mrs/ci_scripts - ref: master - path: .ci_scripts - token: ${{ secrets.PUSH_TOKEN }} - - name: Deploy - run: .ci_scripts/package_build/push_to_ppa.sh unstable /tmp/artifacts