Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial steps into E2E testing #51

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
162 changes: 162 additions & 0 deletions .github/workflows/test_action_locally.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
name: Test the action
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will love to have more descriptive name and emoji if possible 🤣

Suggested change
name: Test the action
name: ☕️ E2E Tests

on:
push:
Comment on lines +2 to +3
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can define the scope this way, but maybe we can leave the pull_request open to all scenarios and not only against main branch

Suggested change
on:
push:
on:
pull_request:
branches:
- main
push:
branches:
- main


permissions:
contents: read

jobs:
normal-run:
name: normal
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '16.19.0'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Build
run: npm run build

- name: Create the reporting folder
run: mkdir reporting

- uses: ./ # uses the action in the current directory
id: scorecard
with:
scope: reporting/scope.json
database: reporting/database.json
report: reporting/openssf-scorecard-report.md
discovery-enabled: true
discovery-orgs: UlisesGascon
# The token is needed to create issues, discovery mode and pushing changes in files
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: Show output in job summary
run: cat reporting/openssf-scorecard-report.md >> $GITHUB_STEP_SUMMARY

- name: Upload the output files
uses: actions/upload-artifact@v3
with:
name: report
path: reporting/*.*

# todo: test the result files to see if they have content that is correct
- name: Test if the output files have content
run: |
# test if the markdown file has content
if [ -s reporting/openssf-scorecard-report.md ]; then
echo "The markdown file has content"
else
echo "The markdown file is empty"
exit 1
fi

# test if the database file has content
if [ -s reporting/database.json ]; then
echo "The database file has content"
else
echo "The database file is empty"
exit 1
fi

# test if the scope file has content
if [ -s reporting/scope.json ]; then
echo "The scope file has content"
else
echo "The scope file is empty"
exit 1
fi

- name: test the actions' output
env:
OUTPUT: ${{ steps.scorecard.outputs.scores }}
run: |
if [ -z "$OUTPUT" ]; then
echo "The output of the action is empty"
exit 1
else
echo "The output of the action is not empty, which is correct"
fi

with-badges-run:
name: wih OSSF badges
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '16.19.0'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Build
run: npm run build

- name: Create the reporting folder
run: mkdir reporting

- uses: ./ # uses the action in the current directory
id: scorecard
with:
scope: reporting/scope.json
database: reporting/database.json
report: reporting/openssf-scorecard-report.md
discovery-enabled: true
discovery-orgs: UlisesGascon
# The token is needed to create issues, discovery mode and pushing changes in files
github-token: ${{ secrets.GITHUB_TOKEN }}
render-badge: true

- name: Show output in job summary
run: cat reporting/openssf-scorecard-report.md >> $GITHUB_STEP_SUMMARY

- name: Upload the output files
uses: actions/upload-artifact@v3
with:
name: report
path: reporting/*.*

# todo: test the result files to see if they have content that is correct
- name: Test if the output files have content
run: |
# test if the markdown file has content
if [ -s reporting/openssf-scorecard-report.md ]; then
echo "The markdown file has content"
else
echo "The markdown file is empty"
exit 1
fi

# test if the database file has content
if [ -s reporting/database.json ]; then
echo "The database file has content"
else
echo "The database file is empty"
exit 1
fi

# test if the scope file has content
if [ -s reporting/scope.json ]; then
echo "The scope file has content"
else
echo "The scope file is empty"
exit 1
fi

- name: test the actions' output
env:
OUTPUT: ${{ steps.scorecard.outputs.scores }}
run: |
if [ -z "$OUTPUT" ]; then
echo "The output of the action is empty"
exit 1
else
echo "The output of the action is not empty, which is correct"
fi