diff --git a/.github/config/sagemaker-xgboost.yml b/.github/config/sagemaker-xgboost.yml index 3a9097bf589f..c945df395d69 100644 --- a/.github/config/sagemaker-xgboost.yml +++ b/.github/config/sagemaker-xgboost.yml @@ -22,9 +22,9 @@ common: # Release configuration release: - release: true + release: false force_release: false - public_registry: true + public_registry: false private_registry: true enable_soci: false - environment: gamma + environment: preprod diff --git a/.github/workflows/release-sagemaker-xgboost.yml b/.github/workflows/release-sagemaker-xgboost.yml index 5a8915355aa9..e7798f602d25 100644 --- a/.github/workflows/release-sagemaker-xgboost.yml +++ b/.github/workflows/release-sagemaker-xgboost.yml @@ -107,29 +107,24 @@ jobs: steps: - name: Checkout DLC source uses: actions/checkout@v5 - - name: Clone sagemaker-xgboost-container run: rm -rf /tmp/xgboost-unit && git clone --depth 1 ${{ env.XGBOOST_CONTAINER_REPO }} /tmp/xgboost-unit - - name: ECR login uses: ./.github/actions/ecr-authenticate with: aws-account-id: ${{ vars.CI_AWS_ACCOUNT_ID }} aws-region: ${{ vars.AWS_REGION }} image-uri: ${{ needs.build-image.outputs.ci-image }} - - name: Build test image run: | CI_IMAGE_URI="${{ needs.build-image.outputs.ci-image }}" cd /tmp/xgboost-unit printf "FROM ${CI_IMAGE_URI}\nADD . /app\nWORKDIR /app\nRUN python3 -m pip install .[test]" > Dockerfile.test docker build -t test-xgboost -f Dockerfile.test . - - name: Run unit tests run: | docker run --rm test-xgboost sh -c \ 'python3 -m pytest --cov=sagemaker_xgboost_container --cov-fail-under=60 test/unit' - - name: Run flake8 run: | docker run --rm test-xgboost sh -c 'python3 -m flake8 setup.py src test' @@ -157,4 +152,45 @@ jobs: aws-account-id: ${{ vars.CI_AWS_ACCOUNT_ID }} aws-region: ${{ vars.AWS_REGION }} - # TODO: Add generate-release-spec and release-image jobs when release is ready + generate-release-spec: + needs: [load-config, build-image, unit-test, security-test, xgboost-tests] + runs-on: ubuntu-latest + concurrency: + group: ${{ github.workflow }}-generate-release-spec-${{ github.run_id }} + cancel-in-progress: true + outputs: + release-spec: ${{ steps.generate.outputs.release-spec }} + should-release: ${{ steps.check-release.outputs.should-release }} + steps: + - name: Checkout code + uses: actions/checkout@v5 + + - name: Check if release is enabled + id: check-release + run: | + echo '${{ needs.load-config.outputs.config }}' > config.json + RELEASE_ENABLED=$(jq -r '.release.release // false' config.json) + echo "Release enabled: ${RELEASE_ENABLED}" + echo "should-release=${RELEASE_ENABLED}" >> $GITHUB_OUTPUT + + - name: Generate release spec + id: generate + if: steps.check-release.outputs.should-release == 'true' + uses: ./.github/actions/generate-release-spec + with: + config-json: ${{ needs.load-config.outputs.config }} + + release-image: + needs: [load-config, build-image, generate-release-spec] + if: needs.generate-release-spec.outputs.should-release == 'true' + concurrency: + group: ${{ github.workflow }}-release-image-${{ github.run_id }} + cancel-in-progress: true + uses: ./.github/workflows/reusable-release-image.yml + with: + source-image-uri: ${{ needs.build-image.outputs.ci-image }} + release-spec: ${{ needs.generate-release-spec.outputs.release-spec }} + environment: ${{ fromJson(needs.load-config.outputs.config).release.environment }} + aws-region: ${{ vars.AWS_REGION }} + runner-fleet: default-runner + secrets: inherit diff --git a/.github/workflows/reusable-release-image.yml b/.github/workflows/reusable-release-image.yml index 24f9ad84aa4a..7940599d1236 100644 --- a/.github/workflows/reusable-release-image.yml +++ b/.github/workflows/reusable-release-image.yml @@ -52,9 +52,9 @@ jobs: ENVIRONMENT="${{ inputs.environment }}" # Validate environment input - if [[ "${ENVIRONMENT}" != "gamma" && "${ENVIRONMENT}" != "production" ]]; then + if [[ "${ENVIRONMENT}" != "gamma" && "${ENVIRONMENT}" != "production" && "${ENVIRONMENT}" != "preprod" ]]; then echo "❌ ERROR: Invalid environment '${ENVIRONMENT}'" - echo "Valid environments: gamma, production" + echo "Valid environments: gamma, preprod, production" exit 1 fi