This file contains 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: Test Code Samples (GA) | |
on: | |
push: | |
branches: ["release/3.*"] | |
pull_request: | |
branches: ["release/3.*"] | |
env: | |
CB_EDITION: couchbase/server:enterprise | |
CB_BUILD: 7.1.2 | |
jobs: | |
# The pre_job uses a smart Github action that will check the provided path filters | |
# to determine if subsequent jobs should be "skipped" when the filters don't apply. | |
# This ensures that our Github branch protection rules are still satisfied and users | |
# can merge their PRs with skipped status checks where appropriate. | |
# It also provides the ability to cancel outdated workflow runs after branch pushes. | |
# https://github.com/marketplace/actions/skip-duplicate-actions | |
pre_job: | |
runs-on: ubuntu-latest | |
# Map a step output to a job output | |
outputs: | |
should_skip: ${{ steps.skip_check.outputs.should_skip }} | |
steps: | |
- id: skip_check | |
uses: fkirc/skip-duplicate-actions@master | |
with: | |
cancel_others: "true" # cancel previous workflow runs when pushing a new commit. | |
paths: '["**/Makefile", "modules/test/**", "**/*.java", "**/pom.xml"]' | |
test: | |
needs: pre_job | |
if: ${{ needs.pre_job.outputs.should_skip != 'true' }} | |
runs-on: ubuntu-latest | |
env: | |
working-directory: ./ | |
steps: | |
- name: Checkout actions | |
uses: actions/checkout@v2 | |
- name: Build Couchbase Docker image | |
run: CB_EDITION=${{ env.CB_EDITION }} CB_BUILD=${{ env.CB_BUILD }} make cb-build | |
working-directory: ${{ env.working-directory }} | |
- name: Run Couchbase Server+SDK container | |
run: make cb-start | |
working-directory: ${{ env.working-directory }} | |
- name: Test code samples | |
run: make tests | |
working-directory: ${{ env.working-directory }} | |
- name: Cleanup | |
run: make cb-stop | |
working-directory: ${{ env.working-directory }} | |
- name: Notify slack on failure | |
# We run this step only on the default 3.1+ branch | |
# because secrets are not accessible on PRs from forks. | |
# Therefore, this notification will only happen when a PR is merged. | |
if: failure() && startsWith(github.ref, 'refs/heads/release/3.*') | |
uses: 8398a7/action-slack@v3 | |
with: | |
status: ${{ job.status }} | |
author_name: ":octocat: SDK Automation Failure" | |
text: ":no_entry: Oh noes! The commit has broken the build...please verify :paddlin:" | |
fields: repo,workflow,job,commit,author | |
mention: here | |
if_mention: failure | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} |