Ops: publish and share
- Role
- Ops
- Outcome
- Your site live, and the link shared
- Time box
- 5 minutes
Ops publishes your site. It saves your changes in a commit (a saved version with a short message), sends it to GitHub with a push, and tells you your live address.
Every push to your repo publishes your site again, through GitHub Actions. So this is also how every later change goes live.
GitHub Actions builds your site with the same build tool as your preview, then publishes the finished pages. It also builds once a day by itself, so dates on your site stay right, such as which event comes next.
Start Ops
- In Antigravity IDE, start a new chat in the agent panel (the + button at the top of the panel).
- Check the model name under the chat box: it says Gemini 3.8 Flash. If not, click it and pick Gemini 3.8 Flash.
Then type:
Agent chat
Start the Ops step.
Ops starts by saying that publishing takes about five minutes.
Read the file list back
Ops runs git status: the list of files that changed since the last commit. It reads the list back to you in plain words, file by file. For example: site/content.json is your content, site/privacy.html is your privacy page.
Ops names every file that does not belong and asks you to move it out of the folder. Move it, for example to your Documents folder:
In Finder, press Cmd+Shift+H (or menu Go → Home), then open portfolio. Drag the file onto Documents in the sidebar.
In File Explorer, click into the address bar, type %USERPROFILE%\portfolio and press Enter. Drag the file onto Documents in the left pane.
In Files, open Home, then portfolio. Drag the file onto Documents in the sidebar.
Then tell Ops you moved it. It runs git status again.
Say yes to publish
Ops runs the Check once more and tells you what needs attention. Then it asks: "Shall I publish these changes? Say yes." Say yes. It makes the commit and pushes it to GitHub.
The first time, Ops may set your name for Git with two git config commands. The email address in them ends in users.noreply.github.com, so your own email address stays private. Allow them.
Sign in if GitHub asks
The first push from your laptop may ask you to sign in to GitHub. What you see depends on your system:
The terminal asks Username for 'https://github.com':, or Ops reports could not read Username and tells you to ask the Instructor. GitHub refuses your account password there and wants a token instead: a long password that GitHub makes for you. You make it last, right before you paste it, so nothing else lands on your clipboard in between.
- In Antigravity IDE, open a terminal with the menu Terminal → New Terminal. Paste this command (Cmd+V) and press Enter:
Terminal
git push
- At
Username, type your GitHub username and press Enter. Now it waits atPassword: leave it waiting. - In Chrome, open github.com/settings/tokens/new. The link fills in the form for you. If GitHub asks for your password first, type it.
- Scroll down and click Generate token. Copy the token, which starts with
ghp_. GitHub shows it only once. - Back in the terminal, paste the token (Cmd+V) and press Enter. Nothing appears while you paste: that is normal. It worked when the last line ends in
main -> main. - Tell Ops in the chat that your push worked. It then waits until your site is live.
Your Mac keeps the token, so later pushes ask for nothing.
A window called Connect to GitHub opens. It may hide behind Antigravity IDE: look for it in the taskbar.
- Click Sign in with your browser.
- A browser opens, maybe Edge rather than Chrome. Sign in with the GitHub account that owns your repo. GitHub may email you a code to type in.
- Go back to Antigravity IDE. Ops continues by itself. If it does not, tell it: "I signed in. Please push again."
The terminal asks Username for 'https://github.com':, or Ops reports could not read Username and tells you to ask the Instructor. GitHub refuses your account password there and wants a token instead: a long password that GitHub makes for you. You make it last, right before you paste it, so nothing else lands on your clipboard in between.
- In Antigravity IDE, open a terminal with the menu Terminal → New Terminal. Paste this command (Ctrl+Shift+V) and press Enter:
Terminal
git push
- At
Username, type your GitHub username and press Enter. Now it waits atPassword: leave it waiting. - In Chrome, open github.com/settings/tokens/new. The link fills in the form for you. If GitHub asks for your password first, type it.
- Scroll down and click Generate token. Copy the token, which starts with
ghp_. GitHub shows it only once. - Back in the terminal, paste the token (Ctrl+Shift+V) and press Enter. Nothing appears while you paste: that is normal. It worked when the last line ends in
main -> main. - Tell Ops in the chat that your push worked. It then waits until your site is live.
Linux asks again at every push. When it does, make a new token the same way.
Still stuck after these steps? Ask your agent first, with the exact error message. Then raise your hand.
Wait until it is live
Ops runs node tools/live.mjs. It finds your site's address and waits until the new version is online, usually within a minute:
What you see (example)
Your site's address: https://luca-bianchi.github.io/portfolio/
An older version is online; the new one is on its way. Looking again in 10 seconds…
Your site is live. Open https://luca-bianchi.github.io/portfolio/ in Chrome and share the link.
If live.mjs reports that GitHub Pages is probably off, repeat the one-time Pages setting from Setup. Tell Ops done, and it publishes again.
Share your link
- Open your address in Chrome:
https://YOUR-USERNAME.github.io/portfolio/. - Open it on your phone too. It is a real website now.
- Show it to your neighbour, and look at theirs.
Paste your address into LinkedIn or a chat: the preview shows your name, and your photo if you have one. Your pre-rendered pages make that work. Want to see what an agent reads there? The QA page has a prompt for it.
At the very end, the Instructor puts six to eight sites side by side on the projector. Want yours there? Have your GitHub username ready.
Ops ends with: "Ops is done, and so is your site." From now on, every change goes live the same way: ask Ops in a fresh chat.
Next: five minutes of feedback, sent from the guide. How to keep going at home is in Next steps.
If something goes wrong
Ask your agent first. Start a fresh chat and type the question below. The agent reads your repo and tells you what is done and what comes next. Got an error message? Paste it into the chat, and it explains it.
Agent chat
Where am I?
"Permission denied" or "403" when pushing
Cause: you are signed in to GitHub with another account than the one that owns the repo.
Fix: raise your hand; the Instructor helps you switch accounts.
"'git' is not recognized", "command not found: git", "not a git repository", or a window about developer tools
Cause: Git is missing on your laptop, or you installed it after the Install script had copied your repo.
Fix, if Git is installed now: run your line from Run the Install script again, in a fresh terminal. It connects your portfolio folder to Git and keeps your files. Then start a fresh chat and type Start the Ops step.
Fix, if you have no administrator rights: publish in the browser.
- On github.com, open your repo
portfolio. Click Add file → Upload files. - Open your
portfoliofolder on your laptop, as in Read the file list back. Drag the wholesitefolder onto the GitHub page and wait until the files are listed. - Click Commit changes. Your site goes live by itself: when the newest Deploy to GitHub Pages run in the Actions tab has a green tick, open your address.
"rejected" and "fetch first"
Cause: your repo on GitHub has a change your laptop does not have yet, for example an edit on github.com.
Fix: Ops handles it: it fetches the change and pushes again. If it reports a conflict, ask the Instructor.
The live address shows an older version
Fix: wait a minute and reload. In your repo on GitHub, the tab Actions shows the newest Deploy to GitHub Pages run; it should get a green tick.
Fell behind?
When the Ops Block's time is up and your site is not live yet, keep your Ops chat going: no checkpoint can publish for you. Ops changes no file, so its checkpoint (the finished state of this Block) is the same as the Lawyer's. You need it only if you have no privacy page yet. It keeps your own content file, design brief and spec, and writes your privacy page. It also replaces your page and its stylesheet, site/index.html and site/assets/styles.css, with the Developer's finished version in the colours and fonts of your brief.
First stop the agent in your old chat, if it is still working: click the stop button in the agent panel. Otherwise it can keep changing files after the checkpoint has run.
Then, in Antigravity IDE, open a terminal (the window for typing commands) with the menu Terminal → New Terminal. It opens in your portfolio folder. Paste this command (Cmd+V on a Mac, Ctrl+V on Windows, Ctrl+Shift+V on Linux) and press Enter:
Terminal · same on Mac, Windows and Linux
node tools/checkpoint.mjs ops
It lists, file by file, what it kept and what it changed. The last lines tell you what to do next: start a fresh chat and ask for Ops. If it says Nothing to change, you were already there. Two Blocks behind? This one checkpoint is enough: it includes the earlier Blocks.
Or let the agent run it for you. Start a fresh chat and type:
Agent chat
Catch me up: the room just finished the Ops block.
Your site goes live only when Ops publishes it: after the checkpoint, start a fresh chat and type Start the Ops step.
Not live when the workshop ends? No problem: publishing works the same at home. Your repo and your files stay yours.
Use the Block that has just ended, not the one that starts now.