Skip to content

Commit 9408742

Browse files
committed
add v8.1.0 release blog post
Signed-off-by: Taylor Silva <dev@taydev.net>
1 parent 7ba4140 commit 9408742

8 files changed

Lines changed: 247 additions & 13 deletions

File tree

Lines changed: 234 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,234 @@
1+
---
2+
title: v8.1.0 Release
3+
date: 2026-03-03
4+
authors:
5+
- tsilva
6+
---
7+
8+
[v8.1.0](https://github.com/concourse/concourse/releases/tag/v8.1.0) is out,
9+
earlier than expected. I initially planned for a release closer to the end of
10+
March, but found we had a lot of unreleased code after only two months. In the
11+
spirit of being [Agile ](https://agilemanifesto.org/principles.html), it felt
12+
right to get this release out sooner rather than later.
13+
14+
Let's go over some of the new features and how to use them. Check the [release
15+
notes](https://github.com/concourse/concourse/releases/tag/v8.1.0) for all the
16+
new features and bug fixes.
17+
18+
<!-- more -->
19+
20+
## 🔎 Search Bar for your Jobs
21+
22+
Added in [PR 9459](https://github.com/concourse/concourse/pull/9459) by
23+
[@ceco556](https://github.com/ceco556).
24+
25+
This PR adds a search bar to the pipeline overview page that allows users to
26+
fuzzy search for jobs. The pipeline overview filters for any matching jobs,
27+
allowing users with large pipelines to quickly filter down to the job they're
28+
looking for. You can also filter by the status of the job (paused, failed,
29+
running, etc.). If your pipeline has groups, the filter will apply to the
30+
currently selected group(s).
31+
32+
<video controls>
33+
<source src="/blog/2026/03/assets/job-search-bar.mp4" type="video/mp4">
34+
</video>
35+
/// caption
36+
Video demonstrating the search bar for job filtering within a pipeline.
37+
///
38+
39+
## *️⃣ Glob Patterns for Passed Constraints
40+
41+
Added in [PR 9418](https://github.com/concourse/concourse/pull/9418) by
42+
[@kcbimonte](https://github.com/kcbimonte).
43+
44+
You can now specify a shell glob pattern for [passed
45+
constraints](../../../../docs/steps/get.md#passed) in your `get` steps. The
46+
pattern is evaluated by Go's [`path.Match()`](https://pkg.go.dev/path#Match).
47+
48+
If you have a long list of passed constraints with jobs that have similar
49+
names, you can now replace them with a simple glob pattern. This is also useful
50+
for users doing complex pipeline templating where jobs may or may not be
51+
present depending on how your pipeline is rendered.
52+
53+
Here's an example pipeline showcasing how to use this new feature.
54+
55+
```yaml
56+
resources:
57+
- name: repo
58+
type: mock
59+
60+
jobs:
61+
- name: unit-tests
62+
plan:
63+
- get: repo
64+
65+
- name: web-tests
66+
plan:
67+
- get: repo
68+
69+
- name: db-tests
70+
plan:
71+
- get: repo
72+
73+
- name: integration-tests
74+
plan:
75+
- get: repo
76+
77+
- name: api-tests
78+
plan:
79+
- get: repo
80+
81+
- name: cve-scan
82+
plan:
83+
- get: repo
84+
passed:
85+
- "*-tests" #Glob pattern!
86+
87+
- name: go-vuln-scan
88+
plan:
89+
- get: repo
90+
passed:
91+
- "*-tests" #Glob pattern!
92+
93+
- name: deploy
94+
plan:
95+
- get: repo
96+
passed:
97+
- "*-scan" #Glob pattern!
98+
```
99+
100+
The pipeline still renders as expected.
101+
102+
![](assets/glob-passed-pipeline.png)
103+
/// caption
104+
Web UI view of the previous pipeline configuration.
105+
///
106+
107+
## 🏷️ Resource Metadata is Exposed via Local Vars
108+
109+
Added in [PR 9419](https://github.com/concourse/concourse/pull/9419) by
110+
[PentaHelix](https://github.com/PentaHelix).
111+
112+
This PR takes the metadata emitted by resources in `get` steps (the key-value
113+
pairs that appear in the table if you expand the `get` step) and adds them as
114+
local variables under the name of the get step `((.:<get-step-name>))`. The
115+
local var can then be used later in a job. This potentially eliminates some
116+
uses of the `load_var` step.
117+
118+
Here's an example pipeline using this new feature.
119+
120+
```yaml
121+
resources:
122+
- name: repo
123+
type: git
124+
source:
125+
uri: https://github.com/concourse/concourse.git
126+
127+
jobs:
128+
- name: print
129+
plan:
130+
- get: repo
131+
- task: print-metadata
132+
config:
133+
platform: linux
134+
image_resource:
135+
type: registry-image
136+
source:
137+
repository: chainguard/bash
138+
run:
139+
path: echo
140+
args:
141+
- "printing repo metadata from local vars:\n"
142+
- "commit: ((.:repo.commit))\n"
143+
- "branch: ((.:repo.branch))\n"
144+
- "url: ((.:repo.url))\n"
145+
```
146+
147+
![](assets/metadata-as-local-vars.png)
148+
/// caption
149+
Web UI showing build output of the previous pipeline.
150+
///
151+
152+
## 🚫 Disable Rerunning Previous Builds of a Job
153+
154+
Added in [PR 9463](https://github.com/concourse/concourse/pull/9463) by
155+
[@ceco556](https://github.com/ceco556).
156+
157+
This PR adds a `disable_reruns` to the [job config](../../../../docs/jobs.md).
158+
Similar to `disable_manual_trigger`, this setting will disable users ability to
159+
rerun builds of a job. This is useful when you job is designed to "fail
160+
forward", like a job that runs `terraform apply`. Rerunning an old build is
161+
usually not useful in this scenario, so this config option gives pipeline
162+
authors a way to ensure old builds of their jobs are not rerun.
163+
164+
Here's how you use `disable_reruns` in your job config:
165+
166+
```yaml
167+
resources:
168+
- name: repo
169+
type: mock
170+
171+
jobs:
172+
- name: no-reruns
173+
disable_reruns: true
174+
plan:
175+
- get: repo
176+
```
177+
178+
When users hover over the button in the web UI they'll see a tooltip that says:
179+
> re-run disabled in job config
180+
181+
![](assets/disable-reruns.png)
182+
/// caption
183+
Image showing tooltip saying "re-run disabled in job config"
184+
///
185+
186+
Trying to rerun the job with `fly` results in an error.
187+
188+
## 🌈 Charming Fly
189+
190+
Added in [PR 9438](https://github.com/concourse/concourse/pull/9438) and
191+
[9439](https://github.com/concourse/concourse/pull/9439) by yours truly!
192+
193+
I had previously used [Bubble Tea](https://github.com/charmbracelet/bubbletea)
194+
for some projects and loved how easy the library makes it to create a nice
195+
terminal/CLI experience. I decided to use Bubble Tea to tackle an annoyance
196+
I've had with the `fly intercept` command, which was when there are too many
197+
containers to pick from! My eyes would go cross trying to scan the list of
198+
containers for the one I want to exec into.
199+
200+
The `fly intercept` command now displays the list of containers as an
201+
interactive list. You can manually navigate up and down the list, or fuzzy
202+
search the list by the step name or type. The list is also paginated, so the
203+
list won't disappear out of view, no matter the size of your terminal window.
204+
205+
<video controls>
206+
<source src="/blog/2026/03/assets/fly-intercept.mp4" type="video/mp4">
207+
</video>
208+
/// caption
209+
Video demonstrating `fly intercept`'s interactive list and search feature.
210+
///
211+
212+
After making this change for `fly intercept`, I re-worked all user prompts in
213+
`fly` to use Bubble Tea. This helped resolve a [long-standing
214+
issue](https://github.com/concourse/concourse/issues/2414) we had with fly's
215+
auto-login flow. Previously we weren't able to correctly close `stdin` when
216+
listening for a login token to be manually entered by the user. Bubble Tea does
217+
not have this issue, so now the `fly login` experience is significantly less janky!
218+
219+
## 🎉 Enjoy the Release!
220+
221+
Thank you to all the contributors that contributed the above features and
222+
reported or resolved various bugs as well. Five new contributors over a two
223+
month period is great! Please check out the [release
224+
notes](https://github.com/concourse/concourse/releases/tag/v8.1.0) for all the
225+
new features and bug fixes that were made.
226+
227+
Thank you to all my individual and corporate
228+
[sponsors](https://github.com/sponsors/taylorsilva) as well! I'm happy to add
229+
[Pix4D](https://www.pix4d.com/) and [RamNode](https://ramnode.com/?ref=A792924)
230+
as new sponsors so far this year. Between them and my corporate clients,
231+
development of Concourse won't be stopping anytime soon. If your company is
232+
interested in supporting Concourse's development or looking for commercial
233+
support, please [reach out](https://pixelair.io/contact/), I'm always happy to
234+
chat about Concourse.
22.9 KB
Loading
5.91 MB
Binary file not shown.
129 KB
Loading
8.49 MB
Binary file not shown.
195 KB
Loading

docs/docs/steps/get.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,11 @@ Fetches a version of a [resource](../resources/index.md). Expand each section be
8888
??? info "**`passed`**: [`[job.name]`](../jobs.md#job-schema)"
8989

9090
### `passed`
91-
When specified, only the versions of the resource that made it through the given list of jobs (AND-ed together) will
92-
be considered when triggering and fetching.
91+
When specified, only the versions of the resource that made it through the
92+
given list of jobs (AND-ed together) will be considered when triggering and
93+
fetching. Shell glob patterns can be used instead of listing every single
94+
upstream job. Patterns are evaluated using Go's
95+
[`path.Match()`](https://pkg.go.dev/path#Match).
9396

9497
??? example "Fanning out and in"
9598

@@ -135,16 +138,13 @@ Fetches a version of a [resource](../resources/index.md). Expand each section be
135138
- in_parallel:
136139
- get: black-ice
137140
passed:
138-
- lvl-2-unit
139-
- lvl-2-integration
141+
- lvl-2-*
140142
- get: control-node
141143
passed:
142-
- lvl-2-unit
143-
- lvl-2-integration
144+
- lvl-2-*
144145
- get: cyberdeck
145146
passed:
146-
- lvl-2-unit
147-
- lvl-2-integration
147+
- lvl-2-*
148148
149149
resources:
150150
- name: black-ice

overrides/main.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{% extends "base.html" %}
22

33
{# change the hash symbols (#) to percents (%) to enable the announcement block #}
4-
{# block announce #}
5-
<!-- <center> -->
6-
<!-- 🎉 <a href="/blog/2026-01-15-v8---new-year-new-concourse-release/">v8 is released! Read the announcement blog post</a> -->
7-
<!-- </center> -->
8-
{# endblock #}
4+
{% block announce %}
5+
<center>
6+
🎉 <a href="/blog/2026-03-03-v810-release/">v8.1.0 is out!</a>
7+
</center>
8+
{% endblock %}

0 commit comments

Comments
 (0)