GithubHelp home page GithubHelp logo

concourse / office-hours Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 1.0 1.25 MB

Office hours is a community live stream that Concourse hosts every so often

Home Page: https://www.youtube.com/channel/UCf5gRGP0pYASo1YwoBkaCGw

CSS 100.00%

office-hours's Introduction

Concourse: the continuous thing-doer.

Discord Build Contributors Help Wanted

Concourse is an automation system written in Go. It is most commonly used for CI/CD, and is built to scale to any kind of automation pipeline, from simple to complex.

booklit pipeline

Concourse is very opinionated about a few things: idempotency, immutability, declarative config, stateless workers, and reproducible builds.

The road to Concourse v10

Concourse v10 is the code name for a set of features which, when used in combination, will have a massive impact on Concourse's capabilities as a generic continuous thing-doer. These features, and how they interact, are described in detail in the Core roadmap: towards v10 and Re-inventing resource types blog posts. (These posts are slightly out of date, but they get the idea across.)

Notably, v10 will make Concourse not suck for multi-branch and/or pull-request driven workflows - examples of spatial change, where the set of things to automate grows and shrinks over time.

Because v10 is really an alias for a ton of separate features, there's a lot to keep track of - here's an overview:

Feature RFC Status
set_pipeline step #31 ✔ v5.8.0 (experimental)
Var sources for creds #39 ✔ v5.8.0 (experimental), TODO: #5813
Archiving pipelines #33 ✔ v6.5.0
Instanced pipelines #34 ✔ v7.0.0 (experimental)
Static across step 🚧 #29 ✔ v6.5.0 (experimental)
Dynamic across step 🚧 #29 ✔ v7.4.0 (experimental, not released yet)
Projects 🚧 #32 🙏 RFC needs feedback!
load_var step #27 ✔ v6.0.0 (experimental)
get_var step #27 🚧 #5815 in progress!
Prototypes #37 ⚠ Pending first use of protocol (any of the below)
run step 🚧 #37 ⚠ Pending its own RFC, but feel free to experiment
Resource prototypes #38 🙏 #5870 looking for volunteers!
Var source prototypes 🚧 #6275 planned, may lead to RFC
Notifier prototypes 🚧 #28 ⚠ RFC not ready

The Concourse team at VMware will be working on these features, however in the interest of growing a healthy community of contributors we would really appreciate any volunteers. This roadmap is very easy to parallelize, as it is comprised of many orthogonal features, so the faster we can power through it, the faster we can all benefit. We want these for our own pipelines too! 😆

If you'd like to get involved, hop in Discord or leave a comment on any of the issues linked above so we can coordinate. We're more than happy to help figure things out or pick up any work that you don't feel comfortable doing (e.g. UI, unfamiliar parts, etc.).

Thanks to everyone who has contributed so far, whether in code or in the community, and thanks to everyone for their patience while we figure out how to support such common functionality the "Concoursey way!" 🙏

Installation

Concourse is distributed as a single concourse binary, available on the Releases page.

If you want to just kick the tires, jump ahead to the Quick Start.

In addition to the concourse binary, there are a few other supported formats. Consult their GitHub repos for more information:

Quick Start

$ wget https://concourse-ci.org/docker-compose.yml
$ docker-compose up
Creating docs_concourse-db_1 ... done
Creating docs_concourse_1    ... done

Concourse will be running at 127.0.0.1:8080. You can log in with the username/password as test/test.

⚠️ If you are using an M1 mac: M1 macs are incompatible with the containerd runtime. After downloading the docker-compose file, change CONCOURSE_WORKER_RUNTIME: "containerd" to CONCOURSE_WORKER_RUNTIME: "houdini". This feature is experimental

Next, install fly by downloading it from the web UI and target your local Concourse as the test user:

$ fly -t ci login -c http://127.0.0.1:8080 -u test -p test
logging in to team 'main'

target saved

Configuring a Pipeline

There is no GUI for configuring Concourse. Instead, pipelines are configured as declarative YAML files:

resources:
- name: booklit
  type: git
  source: {uri: "https://github.com/vito/booklit"}

jobs:
- name: unit
  plan:
  - get: booklit
    trigger: true
  - task: test
    file: booklit/ci/test.yml

Most operations are done via the accompanying fly CLI. If you've got Concourse installed, try saving the above example as booklit.yml, target your Concourse instance, and then run:

fly -t ci set-pipeline -p booklit -c booklit.yml

These pipeline files are self-contained, maximizing portability from one Concourse instance to the next.

Learn More

Contributing

Our user base is basically everyone that develops software (and wants it to work).

It's a lot of work, and we need your help! If you're interested, check out our contributing docs.

office-hours's People

Contributors

taylorsilva avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

isabella232

office-hours's Issues

episode idea: demo new-er features

  • p2p volume streaming, before & after enabling it
  • set_pipelines + archiving pipelines
  • instance pipelines with the previous point
  • load_var step

003 - Container Placement Strategies

Prep:

  • Pick a topic and create/use an issue in this repo
  • If applicable, coordinate with others that will be on the show (guests, other teams, etc.)
  • Create the thumbnail for the episode
  • Schedule the live stream on Youtube
    • Title: Community Office Hour - TITLE HERE
    • Fill in desciption with a brief explanation of what will be presented
  • Add scheduled episode to the "Community Office Hours" playlist
  • On Tuesday tweet about the episode from the Concourse account and/or your own Twitter account
    • Share Youtube link in #dev channel on discord
    • Share Youtube link in slack channels (#concourse-vmware, #concourse-runway, #mapbu-rd-toronto, etc.)

Before Going Live:

  • Do not do any software/OS updates!
  • Send "Going Live" messages on
    • Discord (#dev channel)
    • Twitter
    • Slack
  • Hide your bookmark bar if you'll be showing your browser
  • Test all scenes in OBS, verifying that visuals and audio are working as expected
    • Have your guests join early so you can verify that OBS is capturing their audio and video
    • Consider using OBS's "Studio Mode". It'll prevent you from accidently changing scenes if you click around in OBS while live
  • Begin streaming to Youtube with enough time to do any troubleshooting or rebooting
    • Youtube doesn't start showing the stream until you hit "Go Live" in Youtube Studio

After The Show:

  • Update the video description with relevant show notes and timestamps
    • In Youtube Studio you can find the video under Content > Live
  • Trim the video if necessary
    • Can only trim ater the video is done processing, which can sometimes take ~2 days...
  • Add a folder for the episode under episodes. Copy and fill in the template.md at the root of the episodes folder.
  • Close the episode issue back in this repo

episode idea: building container images in Concourse

demo a few different ways one can build container images in Concourse:

Other tools that I'm not sure would work well but would cover the case where someone has an app but not Dockerfile to go along with it:

episode idea: Pair Programming

Rising interest in programming as a spectator sport (see: 18000+ subscribers on Twitch) suggests that there might be a lot of value in using office hours sessions where we don't otherwise have a topic prepared to do pair/mob programming.

I know I get a ton of enjoyment and insight out of pairing with the Concourse engineering team, and I'm constantly amazed at the skill and finesse with which the VMware team can program. I think there's probably value for the community in either:

  • watching two VMware engineers work on a section of the code (UI, scheduler, API, fly)
  • watching a VMware engineer pair with a community member to collaborate on an issue together
  • watching a VMware engineer or pair of engineers review a PR

In addition, we could jam on special topics like advanced pipeline config, instanced pipelines, across steps, etc.

episode idea: Introduction to Figma and the Concourse UI kit: let's design some UI

If people are interested, I'd be happy to do some live screen design on a new feature proposal. It would be excellent to do this for something where we have a design studio or some other research to drive out a design, but I could also show a shallow dive into how Figma works, detail the components that are built for describing various parts of the Concourse interface, and then piece together a new view in real time with feedback from the community in chat.

002 - Concourse Design Principles

Prep:

  • Pick a topic and create/use an issue in this repo
  • If applicable, coordinate with others that will be on the show (guests, other teams, etc.)
  • Create the thumbnail for the episode
  • Schedule the live stream on Youtube
    • Title: Community Office Hour - TITLE HERE
    • Fill in desciption with a brief explanation of what will be presented
  • Add scheduled episode to the "Community Office Hours" playlist
  • Tweet about it from the Concourse account and/or your own Twitter account
    • Share tweet link in #dev channel on discord
    • Share tweet link in slack channels (#concourse-vmware, #concourse-runway, #mapbu-rd-toronto, etc.)

Before Going Live:

  • Do not do any software/OS updates!
  • Hide your bookmark bar if you'll be showing your browser
  • Test all scenes in OBS, verifying that visuals and audio are working as expected
    • Have your guests join early so you can verify that OBS is capturing their audio and video
    • Consider using OBS's "Studio Mode". It'll prevent you from accidently changing scenes if you click around in OBS while live
  • Begin streaming to Youtube with enough time to do any troubleshooting or rebooting
    • Youtube doesn't start showing the stream until you hit "Go Live" in Youtube Studio

After The Show:

  • Update the video description with relevant show notes and timestamps
    • In Youtube Studio you can find the video under Content > Live
  • Trim the video if necessary
    • Can only trim ater the video is done processing, which can sometimes take ~2 days...
  • Close the episode issue back in this repo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.