Skip to content

Updated deps (#61)

Updated deps (#61) #61

Workflow file for this run

name: Nuke CICD Pipeline
on:
push:
branches:
- prerelease
- master
tags:
- bump-*
pull_request:
branches:
- '**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
pre_setup:
name: Pre Setup
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Run Nuke PipelinePreSetup
run: chmod +x ./build.sh && ./build.sh PipelinePreSetup --args "github"
- id: NUKE_PRE_SETUP_HAS_RELEASE
name: Output NUKE_PRE_SETUP_HAS_RELEASE
run: echo "NUKE_PRE_SETUP_HAS_RELEASE=$(cat ./.nuke/temp/pre_setup_has_release.txt)" >> $GITHUB_OUTPUT
- id: NUKE_PRE_SETUP_HAS_ENTRIES
name: Output NUKE_PRE_SETUP_HAS_ENTRIES
run: echo "NUKE_PRE_SETUP_HAS_ENTRIES=$(cat ./.nuke/temp/pre_setup_has_entries.txt)" >> $GITHUB_OUTPUT
- id: NUKE_PRE_SETUP_HAS_TEST
name: Output NUKE_PRE_SETUP_HAS_TEST
run: echo "NUKE_PRE_SETUP_HAS_TEST=$(cat ./.nuke/temp/pre_setup_has_test.txt)" >> $GITHUB_OUTPUT
- id: NUKE_PRE_SETUP_HAS_BUILD
name: Output NUKE_PRE_SETUP_HAS_BUILD
run: echo "NUKE_PRE_SETUP_HAS_BUILD=$(cat ./.nuke/temp/pre_setup_has_build.txt)" >> $GITHUB_OUTPUT
- id: NUKE_PRE_SETUP_HAS_PUBLISH
name: Output NUKE_PRE_SETUP_HAS_PUBLISH
run: echo "NUKE_PRE_SETUP_HAS_PUBLISH=$(cat ./.nuke/temp/pre_setup_has_publish.txt)" >> $GITHUB_OUTPUT
- id: NUKE_PRE_SETUP_OUTPUT
name: Output NUKE_PRE_SETUP_OUTPUT
run: echo "NUKE_PRE_SETUP_OUTPUT=$(cat ./.nuke/temp/pre_setup_output.json)" >> $GITHUB_OUTPUT
- id: NUKE_PRE_SETUP_OUTPUT_TEST_MATRIX
name: Output NUKE_PRE_SETUP_OUTPUT_TEST_MATRIX
run: echo "NUKE_PRE_SETUP_OUTPUT_TEST_MATRIX=$(cat ./.nuke/temp/pre_setup_output_test_matrix.json)" >> $GITHUB_OUTPUT
- id: NUKE_PRE_SETUP_OUTPUT_BUILD_MATRIX
name: Output NUKE_PRE_SETUP_OUTPUT_BUILD_MATRIX
run: echo "NUKE_PRE_SETUP_OUTPUT_BUILD_MATRIX=$(cat ./.nuke/temp/pre_setup_output_build_matrix.json)" >> $GITHUB_OUTPUT
- id: NUKE_PRE_SETUP_OUTPUT_PUBLISH_MATRIX
name: Output NUKE_PRE_SETUP_OUTPUT_PUBLISH_MATRIX
run: echo "NUKE_PRE_SETUP_OUTPUT_PUBLISH_MATRIX=$(cat ./.nuke/temp/pre_setup_output_publish_matrix.json)" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
outputs:
NUKE_PRE_SETUP_HAS_RELEASE: ${{ steps.NUKE_PRE_SETUP_HAS_RELEASE.outputs.NUKE_PRE_SETUP_HAS_RELEASE }}
NUKE_PRE_SETUP_HAS_ENTRIES: ${{ steps.NUKE_PRE_SETUP_HAS_ENTRIES.outputs.NUKE_PRE_SETUP_HAS_ENTRIES }}
NUKE_PRE_SETUP_HAS_TEST: ${{ steps.NUKE_PRE_SETUP_HAS_TEST.outputs.NUKE_PRE_SETUP_HAS_TEST }}
NUKE_PRE_SETUP_HAS_BUILD: ${{ steps.NUKE_PRE_SETUP_HAS_BUILD.outputs.NUKE_PRE_SETUP_HAS_BUILD }}
NUKE_PRE_SETUP_HAS_PUBLISH: ${{ steps.NUKE_PRE_SETUP_HAS_PUBLISH.outputs.NUKE_PRE_SETUP_HAS_PUBLISH }}
NUKE_PRE_SETUP_OUTPUT: ${{ steps.NUKE_PRE_SETUP_OUTPUT.outputs.NUKE_PRE_SETUP_OUTPUT }}
NUKE_PRE_SETUP_OUTPUT_TEST_MATRIX: ${{ steps.NUKE_PRE_SETUP_OUTPUT_TEST_MATRIX.outputs.NUKE_PRE_SETUP_OUTPUT_TEST_MATRIX }}
NUKE_PRE_SETUP_OUTPUT_BUILD_MATRIX: ${{ steps.NUKE_PRE_SETUP_OUTPUT_BUILD_MATRIX.outputs.NUKE_PRE_SETUP_OUTPUT_BUILD_MATRIX }}
NUKE_PRE_SETUP_OUTPUT_PUBLISH_MATRIX: ${{ steps.NUKE_PRE_SETUP_OUTPUT_PUBLISH_MATRIX.outputs.NUKE_PRE_SETUP_OUTPUT_PUBLISH_MATRIX }}
test:
name: Test - ${{ matrix.name }}
runs-on: ${{ matrix.runs_on }}
steps:
- uses: actions/checkout@v4
if: ${{ matrix.id != 'skip' }}
- name: Cache Test
uses: actions/cache@v4
if: ${{ matrix.id != 'skip' }}
with:
path: ./.nuke/cache
key: test-${{ matrix.runs_on }}-${{ matrix.id }}-${{ matrix.cache_invalidator }}-${{ matrix.environment }}-${{ matrix.run_classification }}-${{ matrix.run_identifier }}"
restore-keys: |-
test-${{ matrix.runs_on }}-${{ matrix.id }}-${{ matrix.cache_invalidator }}-${{ matrix.environment }}-${{ matrix.run_classification }}-
test-${{ matrix.runs_on }}-${{ matrix.id }}-${{ matrix.cache_invalidator }}-${{ matrix.environment }}-main-
- name: Run Nuke PipelineTest
run: ${{ matrix.build_script }} PipelineTest --args "${{ matrix.ids_to_run }}"
if: ${{ matrix.id != 'skip' }}
needs:
- pre_setup
if: success()
env:
NUKE_PRE_SETUP_OUTPUT: ${{ needs.pre_setup.outputs.NUKE_PRE_SETUP_OUTPUT }}
strategy:
matrix:
include: ${{ fromJson(needs.pre_setup.outputs.NUKE_PRE_SETUP_OUTPUT_TEST_MATRIX) }}
test_validation:
name: Test Validation
runs-on: ubuntu-22.04
steps:
- id: NUKE_TEST_SUCCESS
name: Resolve NUKE_TEST_SUCCESS
run: echo "NUKE_TEST_SUCCESS=${NUKE_TEST_SUCCESS_GITHUB/success/ok}" >> $GITHUB_OUTPUT
needs:
- pre_setup
- test
if: success()
env:
NUKE_TEST_SUCCESS_GITHUB: ${{ needs.test.result }}
outputs:
NUKE_TEST_SUCCESS: ${{ steps.NUKE_TEST_SUCCESS.outputs.NUKE_TEST_SUCCESS }}
build:
name: Build - ${{ matrix.name }}
runs-on: ${{ matrix.runs_on }}
steps:
- uses: actions/checkout@v4
if: ${{ matrix.id != 'skip' }}
- name: Cache Build
uses: actions/cache@v4
if: ${{ matrix.id != 'skip' }}
with:
path: ./.nuke/cache
key: build-${{ matrix.runs_on }}-${{ matrix.id }}-${{ matrix.cache_invalidator }}-${{ matrix.environment }}-${{ matrix.run_classification }}-${{ matrix.run_identifier }}"
restore-keys: |-
build-${{ matrix.runs_on }}-${{ matrix.id }}-${{ matrix.cache_invalidator }}-${{ matrix.environment }}-${{ matrix.run_classification }}-
build-${{ matrix.runs_on }}-${{ matrix.id }}-${{ matrix.cache_invalidator }}-${{ matrix.environment }}-main-
- name: Run Nuke PipelineBuild
run: ${{ matrix.build_script }} PipelineBuild --args "${{ matrix.ids_to_run }}"
if: ${{ matrix.id != 'skip' }}
env:
NUKE_NUGET_AUTH_TOKEN: ${{ secrets.NUGET_AUTH_TOKEN }}
NUKE_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload Artifacts
uses: actions/upload-artifact@v4
if: ${{ matrix.id != 'skip' }}
with:
name: ${{ matrix.id }}
path: ./.nuke/output/*
if-no-files-found: error
retention-days: 1
needs:
- pre_setup
- test
- test_validation
if: success()
env:
NUKE_PRE_SETUP_OUTPUT: ${{ needs.pre_setup.outputs.NUKE_PRE_SETUP_OUTPUT }}
strategy:
matrix:
include: ${{ fromJson(needs.pre_setup.outputs.NUKE_PRE_SETUP_OUTPUT_BUILD_MATRIX) }}
build_validation:
name: Build Validation
runs-on: ubuntu-22.04
steps:
- id: NUKE_BUILD_SUCCESS
name: Resolve NUKE_BUILD_SUCCESS
run: echo "NUKE_BUILD_SUCCESS=${NUKE_BUILD_SUCCESS_GITHUB/success/ok}" >> $GITHUB_OUTPUT
needs:
- pre_setup
- test
- test_validation
- build
if: success()
env:
NUKE_BUILD_SUCCESS_GITHUB: ${{ needs.build.result }}
outputs:
NUKE_BUILD_SUCCESS: ${{ steps.NUKE_BUILD_SUCCESS.outputs.NUKE_BUILD_SUCCESS }}
publish:
name: Publish - ${{ matrix.name }}
runs-on: ${{ matrix.runs_on }}
steps:
- uses: actions/checkout@v4
if: ${{ matrix.id != 'skip' }}
- name: Download artifacts
uses: actions/download-artifact@v4
if: ${{ matrix.id != 'skip' }}
with:
path: ./.nuke/output
pattern: ${{ matrix.id }}
merge-multiple: true
- name: Cache Publish
uses: actions/cache@v4
if: ${{ matrix.id != 'skip' }}
with:
path: ./.nuke/cache
key: publish-${{ matrix.runs_on }}-${{ matrix.id }}-${{ matrix.cache_invalidator }}-${{ matrix.environment }}-${{ matrix.run_classification }}-${{ matrix.run_identifier }}"
restore-keys: |-
publish-${{ matrix.runs_on }}-${{ matrix.id }}-${{ matrix.cache_invalidator }}-${{ matrix.environment }}-${{ matrix.run_classification }}-
publish-${{ matrix.runs_on }}-${{ matrix.id }}-${{ matrix.cache_invalidator }}-${{ matrix.environment }}-main-
- name: Run Nuke PipelinePublish
run: ${{ matrix.build_script }} PipelinePublish --args "${{ matrix.ids_to_run }}"
if: ${{ matrix.id != 'skip' }}
env:
NUKE_NUGET_AUTH_TOKEN: ${{ secrets.NUGET_AUTH_TOKEN }}
NUKE_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
needs:
- pre_setup
- test
- test_validation
- build
- build_validation
if: success()
env:
NUKE_PRE_SETUP_OUTPUT: ${{ needs.pre_setup.outputs.NUKE_PRE_SETUP_OUTPUT }}
strategy:
matrix:
include: ${{ fromJson(needs.pre_setup.outputs.NUKE_PRE_SETUP_OUTPUT_PUBLISH_MATRIX) }}
publish_validation:
name: Publish Validation
runs-on: ubuntu-22.04
steps:
- id: NUKE_PUBLISH_SUCCESS
name: Resolve NUKE_PUBLISH_SUCCESS
run: echo "NUKE_PUBLISH_SUCCESS=${NUKE_PUBLISH_SUCCESS_GITHUB/success/ok}" >> $GITHUB_OUTPUT
needs:
- pre_setup
- test
- test_validation
- build
- build_validation
- publish
if: success()
env:
NUKE_PUBLISH_SUCCESS_GITHUB: ${{ needs.publish.result }}
outputs:
NUKE_PUBLISH_SUCCESS: ${{ steps.NUKE_PUBLISH_SUCCESS.outputs.NUKE_PUBLISH_SUCCESS }}
post_setup:
name: Post Setup
runs-on: ubuntu-22.04
steps:
- id: NUKE_PUBLISH_SUCCESS
name: Resolve NUKE_PUBLISH_SUCCESS
run: echo "NUKE_PUBLISH_SUCCESS=${NUKE_PUBLISH_SUCCESS_GITHUB/success/ok}" >> $GITHUB_OUTPUT
- uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
path: ./.nuke/output
- name: Run Nuke PipelinePostSetup
run: chmod +x ./build.sh && ./build.sh PipelinePostSetup
env:
NUKE_PUBLISH_SUCCESS: ${{ steps.NUKE_PUBLISH_SUCCESS.outputs.NUKE_PUBLISH_SUCCESS }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
needs:
- pre_setup
- test
- test_validation
- build
- build_validation
- publish
- publish_validation
if: success() || failure() || always()
env:
NUKE_PRE_SETUP_OUTPUT: ${{ needs.pre_setup.outputs.NUKE_PRE_SETUP_OUTPUT }}
NUKE_PUBLISH_SUCCESS_GITHUB: ${{ needs.publish.result }}