Skip to content

refactor: use mergify-cli #77

refactor: use mergify-cli

refactor: use mergify-cli #77

Workflow file for this run

name: Continuous Integration
permissions: read-all
on:
pull_request:
branches:
- main
- devs/**
concurrency:
# yamllint disable-line rule:line-length
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
linters:
timeout-minutes: 5
runs-on: ubuntu-22.04
steps:
- name: Checkout 🛎️
uses: actions/[email protected]
- name: Setup Python 🔧
uses: actions/[email protected]
with:
python-version: 3.12.4
- name: Download actionlint
id: get_actionlint
# yamllint disable-line rule:line-length
run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) 1.7.1
- name: Test 🔍
run: |
# nosemgrep: generic.ci.security.use-frozen-lockfile.use-frozen-lockfile-pip
pip install semgrep yamllint
semgrep --config=auto --error
yamllint .
${{ steps.get_actionlint.outputs.executable }} -color
test:
timeout-minutes: 5
runs-on: ubuntu-latest
outputs:
job_id: ${{ steps.get-job-id.outputs.job_id }}
steps:
- name: Checkout 🛎️
uses: actions/[email protected]
- name: Prepare mockserver
run: |
docker compose up -d
sleep 1
docker compose logs
- name: Run action
uses: ./
with:
token: fake-valid-token
report_paths: zfixtures/junit_example.xml
mergify_api_url: http://localhost:1080
- name: Get job ID
id: get-job-id
uses: actions/github-script@v7
with:
script: |
const { data } = await github.rest.actions.listJobsForWorkflowRun({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.runId
});
// Looks for exact match
let job = data.jobs.find(
(j) => j.name === context.job
)
if (!job) {
core.error("current job not found");
}
core.setOutput("job_id", String(job.id));
- name: Run action with error scenario ❌
id: error500
continue-on-error: true
uses: ./
with:
token: fake-valid-token
report_paths: zfixtures/junit_example.xml
mergify_api_url: http://localhost:1085
- name: Check error was reported
if: ${{ steps.error500.outcome == 'success' }}
run: |
echo "Error succeeded, that's not correct."
exit 1
- name: Dump mockserver logs
if: always()
run: |
docker compose logs
test-annotations:
needs: test
timeout-minutes: 5
runs-on: ubuntu-latest
steps:
- name: Check GIGID
uses: actions/github-script@v7
with:
script: |
const annotations = await github.rest.checks.listAnnotations({
owner: context.repo.owner,
repo: context.repo.repo,
check_run_id: ${{ needs.test.outputs.job_id }},
});
for (const annotation of annotations.data) {
if (annotation.message.trim() === "CI_ISSUE_GIGID=1234azertyuiop") {
core.info(`Annotations found: ${annotation.message}`)
return
}
}
console.log(annotations)
throw new Error("Annotations not found")