blob: fc2dda17e088dc6cfaa346b8a5d66ad272f91dfd [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: build-branch
on:
- push
jobs:
build:
name: compile
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
- uses: ./.github/buildenv
with:
args: ./hadoop-ozone/dev-support/checks/build.sh
rat:
name: rat
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
- uses: ./.github/buildenv
with:
args: ./hadoop-ozone/dev-support/checks/rat.sh
- uses: actions/upload-artifact@master
if: always()
with:
name: rat
path: target/rat
author:
name: author
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
- uses: ./.github/buildenv
with:
args: ./hadoop-ozone/dev-support/checks/author.sh
- uses: actions/upload-artifact@master
if: always()
with:
name: author
path: target/author
unit:
name: unit
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
- uses: ./.github/buildenv
with:
args: ./hadoop-ozone/dev-support/checks/unit.sh
- uses: actions/upload-artifact@master
if: always()
with:
name: unit
path: target/unit
checkstyle:
name: checkstyle
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
- uses: ./.github/buildenv
with:
args: ./hadoop-ozone/dev-support/checks/checkstyle.sh
- uses: actions/upload-artifact@master
if: always()
with:
name: checkstyle
path: target/checkstyle
findbugs:
name: findbugs
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
- uses: ./.github/buildenv
with:
args: ./hadoop-ozone/dev-support/checks/findbugs.sh
- uses: actions/upload-artifact@master
if: always()
with:
name: findbugs
path: target/findbugs
acceptance:
name: acceptance
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
- uses: ./.github/buildenv
with:
args: ./hadoop-ozone/dev-support/checks/build.sh
# remove image created for 'buildenv'
- run: docker image rm $(docker images -a -q | head -1) || true
# remove its big parent build image
- run: docker image rm apache/ozone-build || true
- run: sudo pip install robotframework
- run: sudo mv ./hadoop-ozone/dist/target/ozone-* /mnt/ozone && sudo chown runner -R /mnt/ozone
- run: cd /mnt/ozone && mkdir .aws && sudo chown 1000 .aws
- run: cd /mnt/ozone/compose && ./test-all.sh
env:
KEEP_IMAGE: false
- uses: actions/upload-artifact@master
if: always()
with:
name: acceptance
path: /mnt/ozone/compose/result
it-freon:
name: it-freon
runs-on: ubuntu-18.04
needs:
- build
steps:
- run: sudo mkdir mnt && sudo mount --bind /mnt `pwd`/mnt && sudo chmod 777 mnt
- uses: actions/checkout@master
with:
path: mnt/ozone
- uses: ./mnt/ozone/.github/buildenv
with:
args: ./mnt/ozone/hadoop-ozone/dev-support/checks/integration.sh -Pfreon
- uses: actions/upload-artifact@master
if: always()
with:
name: it-freon
path: mnt/ozone/target/integration
it-filesystem:
name: it-filesystem
runs-on: ubuntu-18.04
needs:
- build
steps:
- run: sudo mkdir mnt && sudo mount --bind /mnt `pwd`/mnt && sudo chmod 777 mnt
- uses: actions/checkout@master
with:
path: mnt/ozone
- uses: ./mnt/ozone/.github/buildenv
with:
args: ./mnt/ozone/hadoop-ozone/dev-support/checks/integration.sh -Pfilesystem
- uses: actions/upload-artifact@master
if: always()
with:
name: it-filesystem
path: mnt/ozone/target/integration
it-filesystem-contract:
name: it-filesystem-contract
runs-on: ubuntu-18.04
needs:
- build
steps:
- run: sudo mkdir mnt && sudo mount --bind /mnt `pwd`/mnt && sudo chmod 777 mnt
- uses: actions/checkout@master
with:
path: mnt/ozone
- uses: ./mnt/ozone/.github/buildenv
with:
args: ./mnt/ozone/hadoop-ozone/dev-support/checks/integration.sh -Pfilesystem-contract
- uses: actions/upload-artifact@master
if: always()
with:
name: it-filesystem-contract
path: mnt/ozone/target/integration
it-client:
name: it-client
runs-on: ubuntu-18.04
needs:
- build
steps:
- run: sudo mkdir mnt && sudo mount --bind /mnt `pwd`/mnt && sudo chmod 777 mnt
- uses: actions/checkout@master
with:
path: mnt/ozone
- uses: ./mnt/ozone/.github/buildenv
with:
args: ./mnt/ozone/hadoop-ozone/dev-support/checks/integration.sh -Pclient
- uses: actions/upload-artifact@master
if: always()
with:
name: it-client
path: mnt/ozone/target/integration
it-hdds-om:
name: it-hdds-om
runs-on: ubuntu-18.04
needs:
- build
steps:
- run: sudo mkdir mnt && sudo mount --bind /mnt `pwd`/mnt && sudo chmod 777 mnt
- uses: actions/checkout@master
with:
path: mnt/ozone
- uses: ./mnt/ozone/.github/buildenv
with:
args: ./mnt/ozone/hadoop-ozone/dev-support/checks/integration.sh -Phdds-om
- uses: actions/upload-artifact@master
if: always()
with:
name: it-hdds-om
path: mnt/ozone/target/integration
it-ozone:
name: it-ozone
runs-on: ubuntu-18.04
needs:
- build
steps:
- run: sudo mkdir mnt && sudo mount --bind /mnt `pwd`/mnt && sudo chmod 777 mnt
- uses: actions/checkout@master
with:
path: mnt/ozone
- uses: ./mnt/ozone/.github/buildenv
with:
args: ./mnt/ozone/hadoop-ozone/dev-support/checks/integration.sh -Pozone
- uses: actions/upload-artifact@master
if: always()
with:
name: it-ozone
path: mnt/ozone/target/integration
coverage:
name: coverage
runs-on: ubuntu-18.04
needs:
- it-ozone
- it-hdds-om
- it-client
- it-filesystem-contract
- it-filesystem
- it-freon
- unit
steps:
- uses: actions/checkout@v2
- uses: ./.github/buildenv
with:
args: ./hadoop-ozone/dev-support/checks/build.sh
- uses: actions/download-artifact@v2
with:
path: target/artifacts
- run: ./.github/coverage-report.sh
- uses: ./.github/buildenv
if: github.repository == 'apache/hadoop-ozone'
with:
args: ./hadoop-ozone/dev-support/checks/sonar.sh
env:
SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/upload-artifact@master
with:
name: coverage
path: target/coverage