Merge pull request #141 from posit-dev/fix/revert-ecr-temp-registry-2 #1763
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Development | ||
| on: | ||
| workflow_dispatch: | ||
| inputs: | ||
| version: | ||
| description: "Pinned dev version string (e.g. '2026.06.0-dev+156-gcff5d15b7f'). When set, bypasses CDN discovery." | ||
| required: false | ||
| type: string | ||
| channel: | ||
| description: "Dev channel to build (e.g. 'daily', 'preview'). When set with version, only that channel is built." | ||
| required: false | ||
| type: string | ||
| cache: | ||
| description: "Use the bakery registry cache. Set false to force a fresh build (e.g. when the upstream CDN .deb was replaced after a previous cached build, so the layer cache key hits the stale binary)." | ||
| required: false | ||
| type: boolean | ||
| default: true | ||
| schedule: | ||
| # Daily rebuild of dev images. Staggered with images-connect (08:45) | ||
| # and images-workbench (09:45) so the three products don't all build | ||
| # in the same hour. Weeklies run at 01–03 UTC, dailies at 07–09 UTC, | ||
| # with 04–06 UTC reserved as growth headroom. | ||
| - cron: "45 7 * * *" # At 07:45 every day | ||
| push: | ||
| branches: | ||
| - main | ||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} | ||
| cancel-in-progress: true | ||
| jobs: | ||
| ci: | ||
| name: CI | ||
| # Use this job for branch protection status checks. | ||
| if: always() | ||
| runs-on: ubuntu-latest | ||
| permissions: {} | ||
| needs: | ||
| - dev | ||
| steps: | ||
| - uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # v1.2.2 | ||
| id: alls-green | ||
| with: | ||
| jobs: ${{ toJSON(needs) }} | ||
| - if: always() && github.ref == 'refs/heads/main' | ||
| continue-on-error: true | ||
| uses: posit-dev/images-shared/.github/actions/slack-build-notify@main | ||
| with: | ||
| result: ${{ steps.alls-green.outcome }} | ||
| slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }} | ||
| dev: | ||
|
Check failure on line 57 in .github/workflows/development.yml
|
||
| name: Build | ||
| # Dev Build | ||
| # | ||
| # Builds all development versions of each image in parallel. | ||
| # | ||
| # Run on merges to main, or on daily scheduled re-builds. | ||
| permissions: | ||
| contents: read | ||
| packages: write | ||
| uses: "posit-dev/images-shared/.github/workflows/bakery-build-native.yml@main" | ||
| secrets: | ||
| WIZ_CLIENT_ID: ${{ secrets.WIZ_CLIENT_ID }} | ||
| WIZ_CLIENT_SECRET: ${{ secrets.WIZ_CLIENT_SECRET }} | ||
| WIZ_POLICY_ID: ${{ secrets.WIZ_POLICY_ID }} | ||
| WIZ_PROJECT_ID: ${{ secrets.WIZ_PROJECT_ID }} | ||
| with: | ||
| dev-versions: "only" | ||
| dev-version: ${{ inputs.version }} | ||
| dev-channel: ${{ inputs.channel }} | ||
| # Forward the cache input. For non-workflow_dispatch events (schedule / push), | ||
| # `inputs.cache` is unset, so default to true (preserves prior behavior). Only | ||
| # an explicit workflow_dispatch with `cache: false` disables the registry cache. | ||
| cache: ${{ github.event_name != 'workflow_dispatch' || inputs.cache }} | ||
| # Push on merges to main, scheduled rebuilds, and dispatches targeting main. | ||
| push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main' }} | ||
| dogfood: | ||
| name: Update internal PPM installs | ||
| # `inputs` is only populated on workflow_dispatch; on schedule and push | ||
| # events `inputs.channel` is empty, so those events must be allowed | ||
| # through without the channel check (the dispatch step defaults them to | ||
| # the daily channel). | ||
| if: >- | ||
| needs.dev.result == 'success' && | ||
| (inputs.channel == 'daily' || github.event_name != 'workflow_dispatch') && | ||
| (github.event_name == 'push' && github.ref == 'refs/heads/main' || | ||
| github.event_name == 'schedule' || | ||
| github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main') | ||
| needs: | ||
| - dev | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: read | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
| with: | ||
| persist-credentials: false | ||
| - name: Setup bakery | ||
| uses: posit-dev/images-shared/setup-bakery@main | ||
| - name: Generate GitHub App Token | ||
| id: app-token | ||
| uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 | ||
| with: | ||
| app-id: ${{ secrets.PPM_AUTOMATION_APP_ID }} | ||
| private-key: ${{ secrets.PPM_AUTOMATION_PEM }} | ||
| owner: rstudio | ||
| repositories: helm-package-manager,pulumi-package-manager | ||
| - name: Dispatch deploys | ||
| env: | ||
| GH_TOKEN: ${{ steps.app-token.outputs.token }} | ||
| # Schedule and push runs build every dev channel; only the daily | ||
| # channel is deployed to the internal installs. | ||
| DEV_CHANNEL: ${{ inputs.channel || 'daily' }} | ||
| run: | | ||
| ARGS=(--dev-versions only --exclude platform --quiet) | ||
| [[ -n "$DEV_CHANNEL" ]] && ARGS+=(--dev-channel "$DEV_CHANNEL") | ||
| bakery ci matrix "${ARGS[@]}" | jq -r '.[].version' | sort -u | while read -r version; do | ||
| tag="${version//+/-}" | ||
| echo "Dispatching version: $tag" | ||
| # ppm.posit.it, the dogfood replacement (aws-ppm-team Pulumi stack). | ||
| gh workflow run aws_ppm_team_image_update.yml \ | ||
| --repo rstudio/pulumi-package-manager \ | ||
| --field image_tag="$tag" | ||
| done | ||