name: "before-install" description: "launch before_install.sh and then parse env vars" inputs: act: description: 'enable act debug' required: false type: boolean default: 'false' runs: using: "composite" steps: - name: base vars shell: bash run: | if [ -n "${GITHUB_BASE_REF:-}" ]; then BASE_HASH=$(git merge-base "origin/${GITHUB_BASE_REF}" HEAD 2>/dev/null || git rev-parse HEAD) else BASE_HASH=$(git rev-parse HEAD) fi { echo "GIT_HASH=$(git rev-parse HEAD)"; echo "BASE_HASH=${BASE_HASH}"; echo "HEAD_HASH=HEAD"; echo "HEAD_COMMIT_HASH=${GH_COMMIT}"; echo "NX_CALCULATION_FLAGS=--all"; echo "BUILD_OPTS=--configuration production"; echo CI_FORCE_RUN=false; echo NODE_VERSION=$(node -v); } >> $GITHUB_ENV - name: affected:* flag parser shell: bash env: EVENT_NAME: ${{ github.event_name }} PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }} run: | # Get commit message safely from git to avoid script injection # For PRs, use the PR head SHA; for other events use HEAD if [ "$EVENT_NAME" == "pull_request" ] && [ -n "$PR_HEAD_SHA" ]; then COMMIT_MSG=$(git log -1 --format=%B "$PR_HEAD_SHA" 2>/dev/null || echo "") else COMMIT_MSG=$(git log -1 --format=%B 2>/dev/null || echo "") fi if echo "$COMMIT_MSG" | grep -qF "[affected:*]"; then echo "Setting up CI to run with commit flag [affected:*] flag." echo "BREAK_ACTION=true" >> $GITHUB_ENV fi - name: PULL_REQUEST event if: ${{ env.BREAK_ACTION == false && github.event_name == 'pull_request' && !github.event.pull_request.merged }} shell: bash run: | echo "Setting up CI flags for Pull Request event" NX_CALCULATION_FLAGS="--base=origin/${GITHUB_BASE_REF} --head=$HEAD_HASH" { echo "NX_CALCULATION_FLAGS=$NX_CALCULATION_FLAGS"; echo "BASE_HASH=origin/${GITHUB_BASE_REF}"; echo "BREAK_ACTION=true"; } >> $GITHUB_ENV - name: RELEASE on master/develop patch branch if: ${{ env.BREAK_ACTION == false && (github.event.pull_request.merged || github.event_name == 'push') }} shell: bash env: REF_NAME: ${{ github.ref_name }} run: | if [[ "$REF_NAME" =~ ^master(-patch.*)?$ ]]; then # into master(-patch*) echo "Setting up CI flags for Push on master patch" elif [[ "$REF_NAME" =~ ^develop-patch.*$ ]]; then # into develop-patch* echo "Setting up CI flags for Push develop patch" else echo "Setting up CI flags for Push on develop branch" # base=$(git describe --tags $(git rev-list --tags --max-count=1)) # we publish always all the libs until we don't handle partial release echo "NX_CALCULATION_FLAGS=--all" >> $GITHUB_ENV fi echo "BREAK_ACTION=true" >> $GITHUB_ENV - name: SCHEDULE event if: ${{ github.event_name == 'schedule' }} shell: bash env: EV_NAME: ${{ github.event_name }} run: | echo "Setting up CI to run on SCHEDULE" echo "NX_CALCULATION_FLAGS=--all" >> $GITHUB_ENV