-
Notifications
You must be signed in to change notification settings - Fork 0
combined package and s3 to single action #8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR consolidates the deployment workflow by merging the separate "build-and-package" and "deploy-to-s3" workflows into a single streamlined "build-and-deploy" workflow. It also updates the resume title and adds devcontainer configuration for local development.
- Replaces two-step release workflow with direct build-and-deploy process
- Adds intelligent bucket selection based on branch and manual inputs
- Introduces devcontainer setup for consistent development environment
Reviewed Changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/build-and-deploy.yaml |
New unified workflow that builds Jekyll site and deploys directly to S3, with conditional bucket selection |
.github/workflows/build-and-package.yaml |
Removed - functionality merged into build-and-deploy workflow |
.github/workflows/deploy-to-s3.yaml |
Removed - functionality merged into build-and-deploy workflow |
src/_config.yml |
Updated resume title from "DevSecOps Security Assurance Expert" to "Enterprise Security Professional" |
.devcontainer/devcontainer.json |
Added VS Code devcontainer configuration for Ruby 3 development environment |
.devcontainer/Dockerfile |
Added Dockerfile for devcontainer with Ruby 3.0, Node.js, and development tools |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - name: Deploy to S3 | ||
| run: | | ||
| if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then | ||
| BUCKET=${{ github.event.inputs.bucket }} |
Copilot
AI
Nov 21, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The bucket selection logic has an issue. When workflow_dispatch is triggered, the script references ${{ github.event.inputs.bucket }} without quotes in the shell variable assignment. This can cause issues if the input is empty or contains special characters. The variable should be quoted: BUCKET="${{ github.event.inputs.bucket }}"
| BUCKET=${{ github.event.inputs.bucket }} | |
| BUCKET="${{ github.event.inputs.bucket }}" |
| if [ "${{ github.ref }}" == "refs/heads/main" ]; then | ||
| BUCKET="therealbenforce.com" | ||
| echo "Website Cloudfront link: [https://$BUCKET](https://$BUCKET)" >> $GITHUB_STEP_SUMMARY | ||
| else | ||
| BUCKET="staging.therealbenforce.com" |
Copilot
AI
Nov 21, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The deployment summary logic has an issue. When a workflow_dispatch event deploys to therealbenforce.com, the CloudFront link won't be added to the summary because the condition on line 68 only checks github.ref == "refs/heads/main". This means manual deployments to production won't show the CloudFront link. The logic should also check if BUCKET equals "therealbenforce.com" for workflow_dispatch events.
| if [ "${{ github.ref }}" == "refs/heads/main" ]; then | |
| BUCKET="therealbenforce.com" | |
| echo "Website Cloudfront link: [https://$BUCKET](https://$BUCKET)" >> $GITHUB_STEP_SUMMARY | |
| else | |
| BUCKET="staging.therealbenforce.com" | |
| if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then | |
| BUCKET="${{ github.event.inputs.bucket }}" | |
| elif [ "${{ github.ref }}" != "refs/heads/main" ]; then | |
| BUCKET="staging.therealbenforce.com" | |
| else | |
| BUCKET="therealbenforce.com" | |
| fi | |
| if [ "$BUCKET" = "therealbenforce.com" ]; then | |
| echo "Website Cloudfront link: [https://$BUCKET](https://$BUCKET)" >> $GITHUB_STEP_SUMMARY |
| // "forwardPorts": [], | ||
|
|
||
| // Use 'postCreateCommand' to run commands after the container is created. | ||
| "postCreateCommand": "cd src &&bundle install" |
Copilot
AI
Nov 21, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing space after "&&" in the postCreateCommand. The command should be "cd src && bundle install" instead of "cd src &&bundle install" for better readability.
| "postCreateCommand": "cd src &&bundle install" | |
| "postCreateCommand": "cd src && bundle install" |
|
|
||
| // Set *default* container specific settings.json values on container create. | ||
| "settings": { | ||
| "terminal.integrated.shell.linux": "/bin/bash" |
Copilot
AI
Nov 21, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The terminal.integrated.shell.linux setting is deprecated. According to VS Code documentation, you should use terminal.integrated.defaultProfile.linux instead. This setting was deprecated and may not work in recent versions of VS Code.
| "terminal.integrated.shell.linux": "/bin/bash" | |
| "terminal.integrated.defaultProfile.linux": "bash", | |
| "terminal.integrated.profiles.linux": { | |
| "bash": { | |
| "path": "/bin/bash" | |
| } | |
| } |
No description provided.