pushing the changes to get slack notification for build results. #43
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: Build | |
on: | |
workflow_dispatch: | |
push: | |
branches: '**' | |
pull_request: | |
branches: [ main, continousIntegrationLsp4ij ] | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
runtime: [ linux, mac, windows ] | |
include: | |
- runtime: linux | |
os: ubuntu-latest | |
reportName: linux-test-report | |
- runtime: mac | |
os: macOS-latest | |
reportName: mac-test-report | |
- runtime: windows | |
os: windows-latest | |
reportName: windows-test-report | |
steps: | |
- name: Configure pagefile | |
if: contains(matrix.os, 'windows') | |
uses: al-cheb/[email protected] | |
with: | |
minimum-size: 8GB | |
maximum-size: 10GB | |
disk-root: "C:" | |
- name: 'Checkout liberty-tools-intellij' | |
uses: actions/checkout@v3 | |
with: | |
path: liberty-tools-intellij | |
- name: 'Checkout lsp4ij' | |
uses: actions/checkout@v3 | |
with: | |
repository: redhat-developer/lsp4ij | |
path: lsp4ij | |
ref: main | |
- name: 'Install required integration test software' | |
working-directory: ./liberty-tools-intellij | |
run: bash ./src/test/resources/ci/scripts/setup.sh | |
- name: 'Build Lsp4ij' | |
working-directory: ./lsp4ij | |
run: bash ./gradlew buildPlugin | |
- name: 'Unzip lsp4ij file' | |
working-directory: ./lsp4ij/build/distributions | |
run: | | |
unzip -o '*.zip' -d . | |
- name: 'Build Liberty-Tools-Intellij' | |
working-directory: ./liberty-tools-intellij | |
run: bash ./gradlew buildPlugin | |
- name: 'Archive artifacts' | |
if: ${{ runner.os == 'Linux' && !failure() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: liberty-tools-intellij-${{ github.sha }} | |
path: | | |
./**/*liberty-tools-intellij*.zip | |
./**/libs/*liberty-tools-intellij*.jar | |
if-no-files-found: warn | |
retention-days: 7 | |
- name: 'Run UI integration tests' | |
working-directory: ./liberty-tools-intellij | |
run: bash ./src/test/resources/ci/scripts/run.sh | |
- name: 'Archive Test logs and reports' | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.reportName }} | |
path: | | |
liberty-tools-intellij/build/reports/ | |
slack-notification: | |
runs-on: ubuntu-latest | |
needs: build | |
if: always() | |
steps: | |
- name: 'Slack Notification' | |
run: | | |
STATUS=$([[ ${{ needs.build.result }} == "success" ]] && echo "succeeded" || echo "failed") | |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"Workflow ${{ github.workflow }} triggered by branch ${{ github.ref }}. Build results: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}. Status: $STATUS\"}" $SLACK_WEBHOOK_URL | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
shell: bash |