diff --git a/.github/workflows/freebsd-12.yml b/.github/workflows/freebsd-12.yml deleted file mode 100644 index 0f9a70f63a0d5d1de41412851851ba53040f160e..0000000000000000000000000000000000000000 --- a/.github/workflows/freebsd-12.yml +++ /dev/null @@ -1,92 +0,0 @@ -name: freebsd-12 - -on: - push: - branches: - - 'master' - - 'release/**' - tags: - - '**' - pull_request: - types: [opened, reopened, synchronize, labeled] - workflow_dispatch: - workflow_call: - inputs: - submodule: - description: Name of submodule to bump. - required: true - type: string - revision: - description: Git revision from submodule repository - required: true - type: string - -concurrency: - # Update of a developer branch cancels the previously scheduled workflow - # run for this branch. However, the 'master' branch, release branch, 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' || - startsWith(github.ref, 'refs/heads/release/') || - 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: - freebsd-12: - # 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: freebsd-12-mcs - - steps: - - name: Prepare checkout - uses: tarantool/actions/prepare-checkout@master - - uses: actions/checkout@v3.1.0 - with: - fetch-depth: 0 - submodules: recursive - - uses: ./.github/actions/environment - - name: Install deps - uses: ./.github/actions/install-deps-freebsd - - name: Optional submodule bump - if: ${{ inputs.submodule }} - uses: ./.github/actions/bump-submodule - with: - submodule: ${{ inputs.submodule }} - revision: ${{ inputs.revision }} - - name: test - run: gmake -f .test.mk test-freebsd-release - - name: Send VK Teams message on failure - if: failure() - uses: ./.github/actions/report-job-status - with: - bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }} - - name: artifacts - uses: actions/upload-artifact@v3 - if: failure() - with: - name: freebsd-12 - retention-days: 21 - path: ${{ env.VARDIR }}/artifacts - - name: Upload artifacts to S3 - uses: ./.github/actions/s3-upload-artifact - if: ( success() || failure() ) && ( github.ref == 'refs/heads/master' || - startsWith(github.ref, 'refs/heads/release/') || - startsWith(github.ref, 'refs/tags/') ) - with: - job-name: ${{ github.job }} - access-key-id: ${{ secrets.MULTIVAC_S3_ACCESS_KEY_ID }} - secret-access-key: ${{ secrets.MULTIVAC_S3_SECRET_ACCESS_KEY }} - source: ${{ env.VARDIR }}/artifacts diff --git a/.github/workflows/freebsd-13.yml b/.github/workflows/freebsd-13.yml deleted file mode 100644 index 1c710dcdc96325a523146085598c31c2bd3c1996..0000000000000000000000000000000000000000 --- a/.github/workflows/freebsd-13.yml +++ /dev/null @@ -1,92 +0,0 @@ -name: freebsd-13 - -on: - push: - branches: - - 'master' - - 'release/**' - tags: - - '**' - pull_request: - types: [opened, reopened, synchronize, labeled] - workflow_dispatch: - workflow_call: - inputs: - submodule: - description: Name of submodule to bump. - required: true - type: string - revision: - description: Git revision from submodule repository - required: true - type: string - -concurrency: - # Update of a developer branch cancels the previously scheduled workflow - # run for this branch. However, the 'master' branch, release branch, 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' || - startsWith(github.ref, 'refs/heads/release/') || - 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: - freebsd-13: - # 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: freebsd-13-mcs - - steps: - - name: Prepare checkout - uses: tarantool/actions/prepare-checkout@master - - uses: actions/checkout@v3.1.0 - with: - fetch-depth: 0 - submodules: recursive - - uses: ./.github/actions/environment - - name: Install deps - uses: ./.github/actions/install-deps-freebsd - - name: Optional submodule bump - if: ${{ inputs.submodule }} - uses: ./.github/actions/bump-submodule - with: - submodule: ${{ inputs.submodule }} - revision: ${{ inputs.revision }} - - name: test - run: gmake -f .test.mk test-freebsd-release - - name: Send VK Teams message on failure - if: failure() - uses: ./.github/actions/report-job-status - with: - bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }} - - name: artifacts - uses: actions/upload-artifact@v3 - if: failure() - with: - name: freebsd-13 - retention-days: 21 - path: ${{ env.VARDIR }}/artifacts - - name: Upload artifacts to S3 - uses: ./.github/actions/s3-upload-artifact - if: ( success() || failure() ) && ( github.ref == 'refs/heads/master' || - startsWith(github.ref, 'refs/heads/release/') || - startsWith(github.ref, 'refs/tags/') ) - with: - job-name: ${{ github.job }} - access-key-id: ${{ secrets.MULTIVAC_S3_ACCESS_KEY_ID }} - secret-access-key: ${{ secrets.MULTIVAC_S3_SECRET_ACCESS_KEY }} - source: ${{ env.VARDIR }}/artifacts diff --git a/.github/workflows/freebsd.yml b/.github/workflows/freebsd.yml new file mode 100644 index 0000000000000000000000000000000000000000..64ff845a4906bf541b12fcbf7f04c5eafc43ee1b --- /dev/null +++ b/.github/workflows/freebsd.yml @@ -0,0 +1,67 @@ +name: freebsd + +on: + schedule: + - cron: '0 1 * * *' + workflow_dispatch: + +jobs: + freebsd: + # Run for tarantool/tarantool repository only. + if: github.repository == 'tarantool/tarantool' + + runs-on: freebsd-${{ matrix.freebsd-version }}-mcs + + strategy: + fail-fast: false + matrix: + freebsd-version: [ 12, 13 ] + tarantool-branch: + - 'master' + - 'release/3.0' + - 'release/2.11' + - 'release/2.10' + + steps: + - name: Prepare checkout + uses: tarantool/actions/prepare-checkout@master + + - name: Sources checkout + uses: actions/checkout@v3.1.0 + with: + ref: ${{ matrix.tarantool-branch }} + fetch-depth: 0 + submodules: recursive + + - uses: ./.github/actions/environment + + - name: Install deps + uses: ./.github/actions/install-deps-freebsd + + - name: Run testing + run: gmake -f .test.mk test-freebsd-release + + - name: Send VK Teams message on failure + if: failure() + uses: ./.github/actions/report-job-status + with: + bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }} + + - name: Upload artifacts + uses: actions/upload-artifact@v3 + if: failure() + with: + name: freebsd-${{ matrix.freebsd-version }}-${{ matrix.tarantool-branch }} + retention-days: 21 + path: ${{ env.VARDIR }}/artifacts + + - name: Upload artifacts to S3 + uses: ./.github/actions/s3-upload-artifact + if: ( success() || failure() ) && ( github.ref == 'refs/heads/master' || + startsWith(github.ref, 'refs/heads/release/') || + startsWith(github.ref, 'refs/tags/') ) + with: + job-name: ${{ github.job }} + access-key-id: ${{ secrets.MULTIVAC_S3_ACCESS_KEY_ID }} + secret-access-key: ${{ secrets.MULTIVAC_S3_SECRET_ACCESS_KEY }} + source: ${{ env.VARDIR }}/artifacts