-
Notifications
You must be signed in to change notification settings - Fork 0
Build deploy actions #6
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 transitions from AWS CodeBuild to GitHub Actions for building and deploying a Jekyll-based resume website. The changes introduce two new workflows for build/package and deployment operations, add source files for a Jekyll resume site, and remove the old CodeBuild configuration.
- Implements GitHub Actions workflows for automated build, packaging, and S3 deployment
- Adds Jekyll resume site source files including HTML templates, configuration, and static assets
- Removes legacy AWS CodeBuild buildspec.yml and root Gemfile.lock
Reviewed Changes
Copilot reviewed 3 out of 10 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/build-and-package.yaml |
New workflow to build Jekyll site and create GitHub releases with artifacts |
.github/workflows/deploy-to-s3.yaml |
New workflow to deploy releases to S3 buckets with manual trigger |
src/resume.html |
Jekyll template for rendering resume content with multiple sections |
src/index.html |
Entry point that uses the resume layout |
src/_config.yml |
Jekyll configuration with resume settings and personal information |
src/Gemfile |
Ruby dependencies declaration for Jekyll |
src/CNAME |
Custom domain configuration file |
src/favicon.png |
Site favicon image |
buildspec.yml |
Removed AWS CodeBuild configuration |
Gemfile.lock |
Removed root-level lock file |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: site-artifact-${{ github.ref_name }}-${{ github.sha }} | ||
| path: site.zip |
Copilot
AI
Nov 18, 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 path should be src/site.zip since the zip file is created in the src directory (line 47), but the artifact upload is looking for site.zip in the root directory.
| path: site.zip | |
| path: src/site.zip |
|
|
||
| - name: Create GitHub Release | ||
| id: create_release | ||
| uses: actions/create-release@v1 |
Copilot
AI
Nov 18, 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 actions/create-release@v1 action is deprecated. Consider using softprops/action-gh-release or the GitHub CLI (gh release create) instead for creating releases.
| - name: Create GitHub Release | ||
| id: create_release | ||
| uses: actions/create-release@v1 | ||
| with: | ||
| tag_name: ${{ github.event_name == 'pull_request' && github.head_ref || github.ref_name }}-${{ github.sha }} | ||
| release_name: Release ${{ github.event_name == 'pull_request' && github.head_ref || github.ref_name }}-${{ github.sha }} | ||
| draft: false | ||
| prerelease: false | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
|
||
| - name: Upload Release Asset | ||
| uses: actions/upload-release-asset@v1 | ||
| with: | ||
| upload_url: ${{ steps.create_release.outputs.upload_url }} | ||
| asset_path: src/site.zip | ||
| asset_name: site-${{ github.ref_name }}-${{ github.sha }}.zip | ||
| asset_content_type: application/zip | ||
| env: |
Copilot
AI
Nov 18, 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 actions/upload-release-asset@v1 action is deprecated. Consider using softprops/action-gh-release which handles both release creation and asset uploads, or use the GitHub CLI.
| - name: Create GitHub Release | |
| id: create_release | |
| uses: actions/create-release@v1 | |
| with: | |
| tag_name: ${{ github.event_name == 'pull_request' && github.head_ref || github.ref_name }}-${{ github.sha }} | |
| release_name: Release ${{ github.event_name == 'pull_request' && github.head_ref || github.ref_name }}-${{ github.sha }} | |
| draft: false | |
| prerelease: false | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Upload Release Asset | |
| uses: actions/upload-release-asset@v1 | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_path: src/site.zip | |
| asset_name: site-${{ github.ref_name }}-${{ github.sha }}.zip | |
| asset_content_type: application/zip | |
| env: | |
| - name: Create GitHub Release and Upload Asset | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| tag_name: ${{ github.event_name == 'pull_request' && github.head_ref || github.ref_name }}-${{ github.sha }} | |
| name: Release ${{ github.event_name == 'pull_request' && github.head_ref || github.ref_name }}-${{ github.sha }} | |
| draft: false | |
| prerelease: false | |
| files: src/site.zip | |
| env: |
| id: get_releases | ||
| run: | | ||
| releases=$(gh release list --limit 100 --json name -q '.[].name' | jq -R -s -c 'split("\n") | map(select(length > 0))') | ||
| echo "::set-output name=releases::$releases" |
Copilot
AI
Nov 18, 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 ::set-output command is deprecated. Use the environment file syntax instead: echo \"releases=$releases\" >> $GITHUB_OUTPUT.
| echo "::set-output name=releases::$releases" | |
| echo "releases=$releases" >> $GITHUB_OUTPUT |
| list-releases: | ||
| runs-on: ubuntu-latest | ||
| outputs: | ||
| releases: ${{ steps.get_releases.outputs.releases }} | ||
| steps: | ||
| - name: List GitHub Releases | ||
| id: get_releases | ||
| run: | | ||
| releases=$(gh release list --limit 100 --json name -q '.[].name' | jq -R -s -c 'split("\n") | map(select(length > 0))') | ||
| echo "::set-output name=releases::$releases" | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
|
||
| deploy: | ||
| needs: list-releases |
Copilot
AI
Nov 18, 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 list-releases job fetches and outputs available releases, but this output is never used by the deploy job or elsewhere in the workflow. Consider removing this job if it's not needed, or utilize the output for validation purposes.
| list-releases: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| releases: ${{ steps.get_releases.outputs.releases }} | |
| steps: | |
| - name: List GitHub Releases | |
| id: get_releases | |
| run: | | |
| releases=$(gh release list --limit 100 --json name -q '.[].name' | jq -R -s -c 'split("\n") | map(select(length > 0))') | |
| echo "::set-output name=releases::$releases" | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| deploy: | |
| needs: list-releases | |
| deploy: |
| - name: Download Release Asset | ||
| run: | | ||
| echo "Downloading release ${{ github.event.inputs.release }}" | ||
| gh release download ${{ github.event.inputs.release }} --dir ./release |
Copilot
AI
Nov 18, 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 gh release download command requires repository context, but the workflow doesn't check out the repository. Add a checkout step before this, or specify the repository explicitly with --repo ${{ github.repository }}.
| gh release download ${{ github.event.inputs.release }} --dir ./release | |
| gh release download ${{ github.event.inputs.release }} --repo ${{ github.repository }} --dir ./release |
| - name: Sync to S3 | ||
| run: | | ||
| echo "Deploying release ${{ github.event.inputs.release }} to bucket ${{ github.event.inputs.bucket }}" | ||
| aws s3 sync ./release s3://${{ github.event.inputs.bucket }} --delete |
Copilot
AI
Nov 18, 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 AWS CLI command is missing the --region parameter. While AWS may use a default region, it's better to explicitly specify the region either via command parameter or the AWS_DEFAULT_REGION environment variable for clarity and to avoid potential deployment errors.
No description provided.