diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 76308ee..1a7443f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,20 +30,64 @@ jobs: # !! Add your recipes here - recipe.yml steps: - - name: Install some required packages - shell: bash - run: | - sudo dnf install -y gawk - # the build is fully handled by the reusable github action - - name: Build Custom Image - uses: blue-build/github-action@v1.8 + - uses: sigstore/cosign-installer@v3.9.0 with: - recipe: ${{ matrix.recipe }} - cosign_private_key: ${{ secrets.SIGNING_SECRET }} - registry: 'git.hydrosaber.com' - registry_token: ${{ secrets.PACKAGE_BUILDER_TOKEN }} - pr_event_number: ${{ github.event.number }} + install-dir: /usr/bin + use-sudo: true - # enabled by default, disable if your image is small and you want faster builds - maximize_build_space: true - use_unstable_cli: true + # clones user's repo + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Determine Vars + id: build_vars + shell: bash + env: + RECIPE: ${{ matrix.recipe }} + run: | + if [[ "${{ inputs.use_unstable_cli }}" == "true" && -z "${{ inputs.cli_version }}" ]]; then + CLI_VERSION_TAG="main" + elif [ -n "${{ inputs.cli_version }}" ]; then + CLI_VERSION_TAG="${{ inputs.cli_version }}" + else + CLI_VERSION_TAG="v0.9" + fi + echo "cli_version=${CLI_VERSION_TAG}" >> ${GITHUB_OUTPUT} + + RECIPE_PATH="" + if [ -f "./config/${RECIPE}" ]; then + RECIPE_PATH="./config/${RECIPE}" + else + RECIPE_PATH="./recipes/${RECIPE}" + fi + echo "recipe_path=${RECIPE_PATH}" >> ${GITHUB_OUTPUT} + + - name: Install BlueBuild + shell: bash + env: + CLI_VERSION_TAG: ${{ steps.build_vars.outputs.cli_version }} + run: | + sudo docker create \ + --name blue-build-installer \ + ghcr.io/blue-build/cli:${{ env.CLI_VERSION_TAG }}-installer + sudo docker cp blue-build-installer:/out/bluebuild /usr/bin/bluebuild + sudo docker rm blue-build-installer + bluebuild --version + + # blue-build/cli does the heavy lifting + - name: Build Image + shell: bash + working-directory: ${{ inputs.working_directory }} + env: + COSIGN_PRIVATE_KEY: ${{ secrets.SIGNING_SECRET }} + GH_TOKEN: ${{ secrets.PACKAGE_BUILDER_TOKEN }} + BB_PASSWORD: ${{ inputs.registry_token }} + BB_USERNAME: ${{ github.repository_owner }} + BB_REGISTRY: 'git.hydrosaber.com' + BB_REGISTRY_NAMESPACE: ${{ github.repository_owner }} + GH_PR_EVENT_NUMBER: ${{ github.event.number }} + BB_CACHE_LAYERS: false + RECIPE_PATH: ${{ steps.build_vars.outputs.recipe_path }} + RUST_LOG_STYLE: always + CLICOLOR_FORCE: "1" + run: | + sudo -E bluebuild build -v --push ${RECIPE_PATH}