Skip to content

Merge pull request #141 from posit-dev/fix/revert-ecr-temp-registry-2 #1763

Merge pull request #141 from posit-dev/fix/revert-ecr-temp-registry-2

Merge pull request #141 from posit-dev/fix/revert-ecr-temp-registry-2 #1763

Workflow file for this run

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

View workflow run for this annotation

GitHub Actions / Development

Invalid workflow file

The workflow is not valid. .github/workflows/development.yml (Line: 57, Col: 3): Error calling workflow 'posit-dev/images-shared/.github/workflows/bakery-build-native.yml@main'. The nested job 'build-test' is requesting 'id-token: write', but is only allowed 'id-token: none'. .github/workflows/development.yml (Line: 57, Col: 3): Error calling workflow 'posit-dev/images-shared/.github/workflows/bakery-build-native.yml@main'. The nested job 'merge' is requesting 'id-token: write', but is only allowed 'id-token: none'.
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