This PR adds a warning that the performance may be degraded when running
a debug build.
Debug build:
```
% bin/container run -it --rm alpine:latest date
Warning! Running debug build. Performance may be degraded.
Fri Jun 13 18:10:35 PDT 2025
```
Release build:
```
% bin/container run -it --rm alpine:latest date
Fri Jun 13 18:10:35 PDT 2025
```
## 🔧 Improvements Summary
This PR introduces three improvements focused on safety,
maintainability, and readability of the GitHub Actions workflow.
---
### 1. Define Global Environment Variable
**Before:**
Environment variable `CURRENT_SDK` was defined repeatedly in multiple
steps.
**After:**
Declared in gloabally one time.
#### Why This Matters:
- Eliminates duplication across steps.
- Makes it easier to update or remove the variable in the future.
- Still allows per-step override when necessary.
### 2. Fix Unsafe Shell Conditional on inputs.release
- Using **[[ ... ]]** **instea**d of **[ ... ]** for conditionals.
- Adding **double quotes** around inputs and refs to **avoid**
evaluation issues.
**PREVIOUSLY FIXED** Containerization project.
[https://github.com/apple/containerization/pull/68](url)
### 3. Removed EXCLUSION AND TODO comment.
#### Affected Steps:
`check Formatting`
`make proto`
### Improvements:
Now that the repositories are public, we no longer need to exclude files
like Package.swift and Package.resolved from formatting and proto
checks.
- Removed EXCLUDES logic
- Removed related TODO comments
- Updated git diff checks to include all files
@wlan0 @katiewasnothere
## 🔧 Summary
This PR improves the release.yml GitHub Actions workflow by addressing
several critical issues to ensure consistent and reliable behavior
during tag-based releases.
## ✅ Changes Included
### 1. Fixed tag trigger regex
- Escaped dots in the tag regex ([0-9]+\\.[0-9]+\\.[0-9]+) to ensure
only semantic version tags like 1.2.3 trigger the workflow.
##### Explanation
- Old **Regex** is incorrect because . matches **any character**, so it
matched:
`1-2-3`, `1_2_3`, even `1a2b3`, which is invalid for versioning.
- Fixed **Regex** is strict — matches only 1.2.3.
#### Find attached tested SCREEN SHOT BELOW .
**Bad Match with Old Regex:**

**Proper Match with Fixed Regex:**

---
### 💬 Note: If you're planning to adopt alternate version tag formats in
the future — such as:
- v1.0.2 (semantic with prefix)
- release-1.0.2 or rel-1.0.2
- 1.0.2-beta, 1.0.2-rc.1 (prereleases with suffixes)
- x1.0.2x (custom wrapping formats)
**…feel free to reach out. I'm happy to help extend the workflow to
support those formats reliably and safely.**
---
### 2. Added strict release job guard
- Prevented **accidental release runs** on non-tag events using if:
startsWith(github.ref, 'refs/tags/').
### 3. Explicit artifact validation
- **Introduced a shell check** using ls and test to ensure .zip and .pkg
files exist before attempting release. This gives early, clear failure
instead of a **vague error** from `action-gh-release`.
### 4. Clarified GitHub token usage
- Switched from ${{ secrets.GITHUB_TOKEN }} to ${{ github.token }} for
better readability and consistency with GitHub Actions best practices.
@katiewasnothere @wlan0
This adds a default year to use when a file does not yet have git
attributes (aka for a newly created file).
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
This PR resolves the problem of dropped progress updates and ensures the
accuracy of the information provided in the progress bar. Additionally,
it adds the displaying of the finished state to the progress bar.
Requires merging and tagging
https://github.com/apple/containerization/pull/91.
This change consolidates the UserDefaults service name
`com.apple.container.defaults` to a single constant under the extension
file and also renamed the extension file.
Signed-off-by: Yibo Zhuang <yibzhuang@gmail.com>
this PR defines a variable, `decoder`, which represents the
`JSONDecoder` class, rather than doing it in the for loop in `load()`
Signed-off-by: Elijah Wright <git@elijahs.space>
When we were setting up the repos, we needed these environment variables
for the GitHub Actions CI to be able to run the tests. Now that the
images are public, these can be removed.
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
This PR updates the protos to match the recent changes in
https://github.com/apple/container-builder-shim/pull/15.
This PR additionally adds the builder shim version as a variable in
Package.swift. This allows us to be consistent with the builder tag used
for the builder shim image and when building protobuf files.
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
I would love feedback on how people feel about these issue templates, if
there should be more or less templates, or if there are any fields that
people think we should add.
You can see an example of how to use these by testing opening an issue
on my fork [here](https://github.com/katiewasnothere/container/issues).
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
Closes https://github.com/apple/container/issues/126
This PR additionally removes the ability to set
`disable-progress-updates` for `container create` calls while we
investigate why output get jumbled there.
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
Container services can be started and stopped using the `system start`
and `system stop` commands. But there is no straightforward way for
users to check if the services were already started.
This PR adds a new `system status` command that shows wether the
container services are running or not.
The command only checks the status of the apiserver for now, but it
could be expanded in the future to show more details.
Fixes#117.
This token was needed when the repos were private. Now that they are
public, this should no longer be needed.
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
We eventually only want to support building docs from release branches
and tags, however, while we're working to initially set up the docs, we
may have some churn. So we want to be able to publish from main during
that churn.
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
If they're just pulling containerization, suggest following build env
setup directions from containerization repo so they get a cross-platform
SDK setup.