Skip to content

ci: publish all partition templates in one pipeline #5685

ci: publish all partition templates in one pipeline

ci: publish all partition templates in one pipeline #5685

Workflow file for this run

# ~~ Generated by projen. To modify, edit .projenrc.js and run "pnpm dlx projen".
name: build
on:
pull_request: {}
workflow_dispatch: {}
merge_group: {}
jobs:
build:
runs-on: ${{ vars.LARGE_RUNNER_L || 'ubuntu-latest' }}
permissions:
contents: write
checks: write
pull-requests: write
id-token: write
outputs:
self_mutation_happened: ${{ steps.self_mutation.outputs.self_mutation_happened }}
env:
CI: "true"
iam_role_to_assume: ${{ secrets.ROLE_ARN }}
JEST_MAX_WORKERS: ${{ vars.JEST_MAX_WORKERS || 'auto' }}
DISABLE_V8_COMPILE_CACHE: "1"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 8.15.3
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20.12.0
- name: Install dependencies
run: pnpm i --no-frozen-lockfile
- name: Configure AWS Credentials
if: ${{ env.iam_role_to_assume != '' }}
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ env.iam_role_to_assume }}
aws-region: us-east-1
- name: Login to Amazon ECR Public
if: ${{ env.iam_role_to_assume != '' }}
uses: aws-actions/amazon-ecr-login@v2
with:
registry-type: public
- name: Install Library
run: pnpm install
- name: Run NX Build Base Library
run: pnpm nx build @aws/clickstream-base-lib
- name: build
run: pnpm dlx projen build
- name: Publish Test Report
uses: mikepenz/action-junit-report@v4
with:
check_name: Test results
report_paths: ./test-reports/junit.xml
fail_on_failure: true
require_tests: true
detailed_summary: true
job_name: build
update_check: true
include_passed: true
- name: Code Coverage Summary Report
uses: irongut/CodeCoverageSummary@v1.3.0
with:
filename: coverage/cobertura-coverage.xml
badge: "true"
fail_below_min: "true"
format: markdown
hide_branch_rate: "false"
hide_complexity: "true"
indicators: "true"
output: both
thresholds: 60 80
- name: Add Coverage PR Comment
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name
uses: marocchino/sticky-pull-request-comment@v2
with:
recreate: true
path: code-coverage-results.md
- name: Find mutations
id: self_mutation
run: |-
git add .
git diff --staged --patch --exit-code > .repo.patch || echo "self_mutation_happened=true" >> $GITHUB_OUTPUT
working-directory: ./
- name: Upload patch
if: steps.self_mutation.outputs.self_mutation_happened
uses: actions/upload-artifact@v4
with:
name: .repo.patch
path: .repo.patch
overwrite: true
- name: Fail build on mutation
if: steps.self_mutation.outputs.self_mutation_happened
run: |-
echo "::error::Files were changed during build (see build log). If this was triggered from a fork, you will need to update your branch."
cat .repo.patch
exit 1
self-mutation:
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
if: always() && needs.build.outputs.self_mutation_happened && !(github.event.pull_request.head.repo.full_name != github.repository)
steps:
- name: Checkout
uses: actions/checkout@v4
with:
token: ${{ secrets.PROJEN_GITHUB_TOKEN }}
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Download patch
uses: actions/download-artifact@v4
with:
name: .repo.patch
path: ${{ runner.temp }}
- name: Apply patch
run: '[ -s ${{ runner.temp }}/.repo.patch ] && git apply ${{ runner.temp }}/.repo.patch || echo "Empty patch. Skipping."'
- name: Set git identity
run: |-
git config user.name "github-actions"
git config user.email "github-actions@github.com"
- name: Push changes
env:
PULL_REQUEST_REF: ${{ github.event.pull_request.head.ref }}
run: |-
git add .
git commit -s -m "chore: self mutation"
git push origin HEAD:$PULL_REQUEST_REF