Add files via upload #175
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
# This is a basic workflow to help you get started with Actions | |
name: SPASE Push Validation | |
# Controls when the action will run. Triggers the workflow on push or pull request | |
# events but only for the master branch | |
on: push | |
# push: | |
# branches: [ main ] | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
# This workflow contains a single job called "validate" | |
validate: | |
name: Validation and referential check | |
# The type of runner that the job will run on | |
runs-on: ubuntu-latest | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
# Install spase-resource-tools | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: '14' | |
- run: npm install | |
- name: Install SPASE-Resource-tools | |
run: npm install -g spase-resource-tools | |
# Checks out a copy of your repository on the ubuntu-latest machine | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
# Find files that have changed | |
- name: Find changed files | |
uses: technote-space/get-diff-action@v4 | |
with: | |
PATTERNS: | | |
**/*.xml | |
SEPARATOR: ' ' | |
# Prepare for logs | |
- name: Prepare Log directory | |
run: mkdir -p logs | |
# Check only the source codes that have differences | |
# Check descriptions for schema conformance | |
# if: env.GIT_DIFF | |
- name: Schema compliance ... | |
run: | | |
echo "Schema compliance ..." > logs/validate.log | |
for f in $(echo ${{ env.GIT_DIFF }}); do spase-validate $f; done >> logs/validate.log | |
# Check references | |
# if: env.GIT_DIFF | |
- name: Referential checks ... | |
run: | | |
echo "" >> logs/validate.log | |
echo "Referential checks ..." >> logs/validate.log | |
for f in $(echo ${{ env.GIT_DIFF }}); do spase-refcheck -u -i $f; done >> logs/validate.log | |
# Upload logs | |
# if: env.GIT_DIFF | |
- name: Upload log artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: validate-log | |
path: logs/validate.log | |
# Check if log contains any INVALID items | |
- name: Check for invalid items | |
run: | | |
if [ -f logs/validate.log ]; then | |
set +e | |
echo -n "Number of invalid files: " | |
# Turn off exit code - we handle it differently | |
grep -c "^ INVALID:" logs/validate.log | |
if [ `grep -c "^ INVALID:" logs/validate.log` -eq 0 ]; then | |
echo "No FAILURE found: $?" | |
exit 0 | |
else | |
echo "FAILURE found: $?" | |
exit 1 | |
fi | |
set -e | |
fi | |
notify: | |
name: Notify that a push has occurred | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/[email protected] | |
- name: Get current date | |
id: date | |
run: echo "::set-output name=date::$(date +'%Y-%m-%d')" | |
- name: Get changed files | |
uses: jitterbit/get-changed-files@v1 | |
id: changed | |
with: | |
format: json | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Send mail | |
# Define the following secrets for the repository: EMAIL_SERVER, EMAIL_USERNAME, EMAIL_PASSWORD, EMAIL_TO, EMAIL_LIST | |
if: always() | |
uses: dawidd6/action-send-mail@v2 | |
with: | |
# mail server settings | |
server_address: ${{ secrets.EMAIL_SERVER }} | |
server_port: 465 | |
# user credentials | |
username: ${{ secrets.EMAIL_USERNAME }} | |
password: ${{ secrets.EMAIL_PASSWORD }} | |
# email subject | |
subject: ${{ steps.date.outputs.date }} ${{ github.repository }} push | |
# email body as text | |
body: | | |
Run date ${{ steps.date.outputs.date }} | |
By: ${{ github.actor }} | |
${{ github.repository }} files added or updated: | |
-- | |
Added | |
${{ steps.changed.outputs.added }} | |
-- | |
Removed | |
${{ steps.changed.outputs.removed }} | |
-- | |
Renamed | |
${{ steps.changed.outputs.renamed }} | |
-- | |
Modified | |
${{ steps.changed.outputs.modified }} | |
-- | |
Added+Modified: | |
${{ steps.changed.outputs.added_modified }} | |
# comma-separated string, send email to | |
to: ${{ secrets.EMAIL_LIST }},${{ secrets.EMAIL_TO }} | |
# from email name | |
from: HPDE Mailer |