From 77de011b1623730fd8e61a65afd93d9002977e90 Mon Sep 17 00:00:00 2001 From: Yaroslav Lobankov <y.lobankov@tarantool.org> Date: Mon, 16 May 2022 15:20:33 +0400 Subject: [PATCH] ci: add Ubuntu Hirsute/Impish aarch64 workflows Add the ubuntu_21_04_aarch64.yml and ubuntu_21_10_aarch64.yml workflow files to build Tarantool packages for the aarch64 system. Follows-up tarantool/tarantool#5825 Follows-up tarantool/tarantool#6566 NO_DOC=ci NO_TEST=ci NO_CHANGELOG=ci (cherry picked from commit 74f67c7b194a1a895ff0cb18095d317b4b0e0570) --- .github/workflows/ubuntu_21_04_aarch64.yml | 68 ++++++++++++++++++++++ .github/workflows/ubuntu_21_10_aarch64.yml | 68 ++++++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 .github/workflows/ubuntu_21_04_aarch64.yml create mode 100644 .github/workflows/ubuntu_21_10_aarch64.yml diff --git a/.github/workflows/ubuntu_21_04_aarch64.yml b/.github/workflows/ubuntu_21_04_aarch64.yml new file mode 100644 index 0000000000..4eed2a9421 --- /dev/null +++ b/.github/workflows/ubuntu_21_04_aarch64.yml @@ -0,0 +1,68 @@ +name: ubuntu_21_04_aarch64 + +on: + push: + branches: + - 'master' + - '[0-9].[0-9]+' + tags: + - '**' + pull_request: + types: [opened, reopened, synchronize, labeled] + workflow_dispatch: + +concurrency: + # Update of a developer branch cancels the previously scheduled workflow + # run for this branch. However, the 'master' branch, release branch (1.10, + # 2.8, etc.), and tag workflow runs are never canceled. + # + # We use a trick here: define the concurrency group as 'workflow run ID' + + # 'workflow run attempt' because it is a unique combination for any run. + # So it effectively discards grouping. + # + # Important: we cannot use `github.sha` as a unique identifier because + # pushing a tag may cancel a run that works on a branch push event. + group: ${{ ( + github.ref == 'refs/heads/master' || + github.ref == 'refs/heads/1.10' || + startsWith(github.ref, 'refs/heads/2.') || + startsWith(github.ref, 'refs/tags/')) && + format('{0}-{1}', github.run_id, github.run_attempt) || + format('{0}-{1}', github.workflow, github.ref) }} + cancel-in-progress: true + +jobs: + ubuntu_21_04_aarch64: + # Run on push to the 'master' and release branches of tarantool/tarantool + # or on pull request if the 'full-ci' label is set. + if: github.repository == 'tarantool/tarantool' && + ( github.event_name != 'pull_request' || + contains(github.event.pull_request.labels.*.name, 'full-ci') ) + + runs-on: graviton + + steps: + - uses: actions/checkout@v2.3.4 + with: + fetch-depth: 0 + submodules: recursive + - uses: ./.github/actions/environment + - name: packaging + env: + RWS_AUTH: ${{ secrets.RWS_AUTH }} + OS: 'ubuntu' + DIST: 'hirsute' + uses: ./.github/actions/pack_and_deploy + - name: call action to send Telegram message on failure + env: + TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_CORE_TOKEN }} + TELEGRAM_TO: ${{ secrets.TELEGRAM_CORE_TO }} + uses: ./.github/actions/send-telegram-notify + if: failure() + - name: artifacts + uses: actions/upload-artifact@v2 + if: failure() + with: + name: ubuntu-hirsute + retention-days: 21 + path: ${{ env.VARDIR }}/artifacts diff --git a/.github/workflows/ubuntu_21_10_aarch64.yml b/.github/workflows/ubuntu_21_10_aarch64.yml new file mode 100644 index 0000000000..0a3d1e2e2d --- /dev/null +++ b/.github/workflows/ubuntu_21_10_aarch64.yml @@ -0,0 +1,68 @@ +name: ubuntu_21_10_aarch64 + +on: + push: + branches: + - 'master' + - '[0-9].[0-9]+' + tags: + - '**' + pull_request: + types: [opened, reopened, synchronize, labeled] + workflow_dispatch: + +concurrency: + # Update of a developer branch cancels the previously scheduled workflow + # run for this branch. However, the 'master' branch, release branch (1.10, + # 2.8, etc.), and tag workflow runs are never canceled. + # + # We use a trick here: define the concurrency group as 'workflow run ID' + + # 'workflow run attempt' because it is a unique combination for any run. + # So it effectively discards grouping. + # + # Important: we cannot use `github.sha` as a unique identifier because + # pushing a tag may cancel a run that works on a branch push event. + group: ${{ ( + github.ref == 'refs/heads/master' || + github.ref == 'refs/heads/1.10' || + startsWith(github.ref, 'refs/heads/2.') || + startsWith(github.ref, 'refs/tags/')) && + format('{0}-{1}', github.run_id, github.run_attempt) || + format('{0}-{1}', github.workflow, github.ref) }} + cancel-in-progress: true + +jobs: + ubuntu_21_10_aarch64: + # Run on push to the 'master' and release branches of tarantool/tarantool + # or on pull request if the 'full-ci' label is set. + if: github.repository == 'tarantool/tarantool' && + ( github.event_name != 'pull_request' || + contains(github.event.pull_request.labels.*.name, 'full-ci') ) + + runs-on: graviton + + steps: + - uses: actions/checkout@v2.3.4 + with: + fetch-depth: 0 + submodules: recursive + - uses: ./.github/actions/environment + - name: packaging + env: + RWS_AUTH: ${{ secrets.RWS_AUTH }} + OS: 'ubuntu' + DIST: 'impish' + uses: ./.github/actions/pack_and_deploy + - name: call action to send Telegram message on failure + env: + TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_CORE_TOKEN }} + TELEGRAM_TO: ${{ secrets.TELEGRAM_CORE_TO }} + uses: ./.github/actions/send-telegram-notify + if: failure() + - name: artifacts + uses: actions/upload-artifact@v2 + if: failure() + with: + name: ubuntu-impish + retention-days: 21 + path: ${{ env.VARDIR }}/artifacts -- GitLab