(1/2)静的webサイトをS3にデプロイ!claude codeとGithub Actionsを用いて自動デプロイ!
自己紹介
せやかて工藤、これからはAI駆動開発やで!
こんにちは。クラウドエンジニアの多野です。
AWSエンジニア歴1年半、資格はそこそこ持ってます。
大阪在住 趣味は自動化。1ポチに美学感じてます。
Claude codeで簡単な静的なwebサイトゲームが作れそうなので、そのデプロイまでを自動化したいと思いメモ書き程度に書いていきます。
スキル
EC2/RDS/ELB/S3/Route 53/Cloud front/ECS(予定)/EKS(予定)/サーバーレス(予定)
Terraform/Git/CI,CD(予定)/Ansible/SSM Automation
Datadog/NewRelic
Apache/MySQL/PHP
資格
AWS 2025全冠
Google 2025全冠まであと2つ
LPIC 1
生成AIに対する所感
ChatGPT Plus
:o3のリサーチ力や、思考力を必要とするときに使用。無しでも可。
Gemini Pro
:汎用性がすごい。膨大な情報を理解してくれて気兼ねなく使える。固定最高!全部覚えてくれてる。敢えてGeminiに情報を渡すこともある。
claude code 100ドルMAX
:まだブラウザのみやけど、コード書けない自分からしたらありがたい!アプリ側への理解欲が湧く。あと、文章では理解しづらいことをGeminiの説明をそのままclaudeに構成図を書いてもらうと一気に理解が進む。
前提
【前提として下記のブログの設定は済んでるものとする】
【2025年度版】Macbook air M4を購入したときに絶対にしないといけない設定!!!
※bash zshは都度変えてください
併せて以下も興味あれば
【作業日報】静的webサイトをS3にデプロイ!claude codeを用いて開発テストまでの手順
出来ること
ゲームを公開出来ました!笑
インフラリソース
IAM (Identity and Access Management)
IAM Identity Center
:安全なユーザー一元管理
IAM Identity Center ユーザー
:コンソールやAWS CLIを使うためのユーザー
許可セット
: 権限を定義する
OIDC IDプロバイダ:GitHub Actionsとの権限橋渡し
IAMロール
:GitHub Actionsで使うロール
Amazon S3バケット
:ウェブサイトのファイル(HTMLなど)を保管する
Amazon CloudFront ディストリビューション
: S3バケットの中身をカスタマーの身近に届ける
AWS Certificate Manager (ACM) SSL/TLS証明書
: 独自ドメイン (tanoyuusuke.com と *.tanoyuusuke.com) でのHTTPS通信を可能にするための証明書です。
Amazon Route 53
ホストゾーン
: ドメイン tanoyuusuke.com のDNSレコードを管理するための場所。
Aレコード(エイリアス)
: ドメインへのアクセスをCloudFrontディストリビューションに向けるためのDNSレコード。
コスト
個人学習
月間のデータ転送量: 10GB未満
月間のリクエスト数: 10万リクエスト未満
約$0.50 (約75円)
小規模公開・中程度のトラフィック
月間のデータ転送量: 150GB (無料枠100GB + 有料50GB)
月間のリクエスト数: 2,000万件 (無料枠1000万件 + 有料1000万件)
約$6.95 (約1,043円)
人気サイト・高トラフィック
月間のデータ転送量: 2TB = 2048GB (無料枠1024GB + 有料1024GB)
月間のリクエスト数: 1億件 (無料枠1000万件 + 有料9000万件)
WAFなしの場合: 約$184.74 (約27,711円)
WAFありの場合: 約$254.74 (約38,211円)
前書き
今回はAWSエンジニアがClaude codeを手にして静的webサイトでゲームを作りたいと思って、試行錯誤して作成しました。
インフラ側は多少分かるものの、アプリ側は全く分からず。。。
一応インフラとしてはS3に置いてるファイルをCloudfrontディストリビューションでキャッシュとして配置し、お名前.comでドメイン取得し、Route 53でドメインの向き先も変更してACMでHTTTP通信も可能としております!!!
アプリはclaude code導入から解説してる感じになってます!!!
今回は手順的な形で細かく書いてるので、参考にしていただける方はしてください!!!
AWS登録
すみません!!!省きます。
AWSでルートユーザーの作成は前提とさせてください。
リージョンはap-northeast-01の東京に変えてください!!!!!(絶対)
IAM Identity Centerユーザー作成
権限の話
権限をどこまで与えるかの話。大きくはこの4つ
ユーザー名 | 権限 |
---|---|
ルートユーザー | なんでも出来る |
adminユーザー | IAM権限を変えれて、リソースを操作作成等出来る |
powerユーザー | IAM権限変えれないけど、リソースを操作作成等出来る |
ReadOnlyユーザー | 閲覧のみ |
漏洩時
強さの序列
ルートユーザー>>>>>admin>>>>>power>>>>>ReadOnly
ReadOnlyユーザーが漏洩しても閲覧のみなので、コンソールを操作される被害は無し。機密情報も見れない。
powerユーザーが漏洩して悪用された時にはadmin権限で漏洩したユーザーを消すことが出来る。
では、admin権限が漏洩したときは?ルートユーザーでそのユーザーを消すことが出来る。
では、ルートユーザーが漏洩したら。。。?AWSにごめんなさいして、その間の費用は自分たちの責任です。
なので、ルートユーザーはMFAは絶対。アクセスキーを発行しない。ルートユーザーは普段使いをしない。が鉄則です。
※アクセスキーはコンソールではなくて、AWS CLIとか遠隔でアカウントを操作する時に使うので無くても問題ない。
※現在のベストプラクティスはIAMユーザーではなくて、IAM Identity Centerらしいです。恐らく。
つまり
なのでまず、admin権限を持ったユーザーを作成します。
自己学習環境ならadmin権限で良いと思います。出来ることも多いので。
慣れてきたら特定のリソースに権限絞ったりしても良いかと思います。
※推奨は最小権限です。それと人にユーザー渡すときはadminは絶対ダメ。
IAM Identity Centerを有効化
IAM Identity Centerで検索し、有効にする
※今回は組織的なものじゃないので、ここのアカウントにリソースを置いてもOK。ベストは別アカウントを作成すべし。
ユーザー追加
IAM Identity Centerからユーザーを選択し、ユーザーを追加を選択。
このユーザーと共有できるワンタイムパスワードを生成します。を選択し次へを押下。
グループは今回は自己学習なので無しで。(規模が大きくなれば)
確認し、ユーザーを追加し、ワンタイムパスワードなどコピーしてから閉じてください!!!
権限付与
IAM Identity Center→許可セットを選択し、許可セットを作成を押下。
事前定義された許可セットを選び、AdministratorAccessを選択し次へ。
セッション期間を12時間を選択し、タグをセットし、次へを選択し作成。
次に、IAM IdentiyCenter→AWSアカウントから対象のアカウントをチェックし、ユーザーまたはグループを割り当てを選択。
(このアカウントに対して、このユーザーはこの権限を付与しますって言う設定)
対象のユーザを選択し、次へ。
対象の許可セットを(AdministratorAccess)選択し次へ。
対象のユーザーと対象の許可セットを確認し、送信。
IAM Identity Centerユーザーのログイン確認
先ほどコピーしたAWS access portal URLをgoogleの検索バーで検索し
ユーザー名とワンタイムパスワードを入力しサインイン
MFA登録を促されるので、MFAを登録し
再ログインの際にパスワード変更を求められるのでパスワードを変更
ポータルに入り、自分のアカウントを選択し、対象の権限を選択すると入れます!
リージョンは東京に切り替えること!
ローカルのAWS CLIで認証を行う。プロファイル作成は1度だけ。
※下記にコマンド履歴があるので参考に。
ターミナルでaws configure sso
を打つ
SSO session name (Recommended):
:そのままEnter
SSO start URL [None]:
:ポータルログインのURLを入力
SSO region [None]: ap-northeast-1
:東京ならap-northeast-1を入力
するとwebのポータルログイン画面に遷移するので
ユーザー名、パスワード、MFAを入力すると、認証がリクエストされましたのコードが出るので、ターミナルと一致するか確認し、確認して続行→データアクセスを許可すると認証が通る。設定した12時間で認証は切れる。
そしたらターミナルへ戻り以下を入力
CLI default client Region [ap-northeast-1]:
:ap-northeast-1となってるならそのままEnter
CLI default output format [None]:
jsonを入力しEnter
CLI profile name [AdministratorAccess-252170044718]:
:任意のプロファイル名を入力
tano1:0603game tano$ aws configure sso
SSO session name (Recommended):
WARNING: Configuring using legacy format (e.g. without an SSO session).
Consider re-running "configure sso" command and providing a session name.
SSO start URL [None]: https://d-9567b898c6.awsapps.com/start
SSO region [None]: ap-northeast-1
Attempting to automatically open the SSO authorization page in your default browser.
If the browser does not open or you wish to use a different device to authorize this request, open the following URL:
https://d-9567b898c6.awsapps.com/start/#/device
Then enter the code:
PZLN-DSWX
The only AWS account available to you is: 252170044718
Using the account ID 252170044718
The only role available to you is: AdministratorAccess
Using the role name "AdministratorAccess"
CLI default client Region [ap-northeast-1]:
CLI default output format [None]: json
CLI profile name [AdministratorAccess-252170044718]: AdministratorAccess-252170044718-0603game-sso
To use this profile, specify the profile name using --profile, as shown:
aws s3 ls --profile AdministratorAccess-252170044718-0603game-sso
tano1:0603game tano$
direnvを設定し、認証を確認する
作業ディレクトリで、.envrc
ファイルを作成し、export AWS_PROFILE=<先ほどのプロファイル名>
を記載し保存する。
sts get-caller-identity
コマンド使用し、認証が通ってるか確認する。通っていればUserId、Account、Arnが記載される。またこのコマンドは現在認証が通っているアカウントを確認するために使ったりもする。
確認できれば、aws s3 ls
を打つと、対象アカウントのS3バケットを見れたら、AWS CLIを使えることを確認する。
その後cd
でホームディレクトリに戻り、sts get-caller-identity
を打って認証が通って無いことを確認し、direnvが機能していることを確認する。
tano1:0603game tano$ vi .envrc
direnv: error /Users/tano/0603game/.envrc is blocked. Run `direnv allow` to approve its content
tano1:0603game tano$ direnv allow
direnv: loading ~/0603game/.envrc
direnv: export +AWS_PROFILE ~XPC_SERVICE_NAME
tano1:0603game tano$ cat .envrc
export AWS_PROFILE=AdministratorAccess-252170044718-0603game-sso
tano1:0603game tano$ aws sts get-caller-identity
{
"UserId": "〜省略〜",
"Account": "〜省略〜",
"Arn": "〜省略〜"
}
tano1:0603game tano$ aws s3 ls
2025-06-04 17:39:50 tano-0603game-bucket
tano1:0603game tano$ cd
direnv: unloading
tano1:~ tano$ aws sts get-caller-identity
Unable to locate credentials. You can configure credentials by running "aws configure".
tano1:~ tano$
次回から認証を行う時
ログアウト
一旦今のところでログアウトを行ってみる
作業ディレクトリでaws sso logout --profile <ログアウトしたいSSOプロファイル名>
後に、aws sts get-caller-identity
を行うと認証が通ってないことが分かる。
tano1:0603game tano$ aws sso logout --profile AdministratorAccess-252170044718-0603game-sso
tano1:0603game tano$ aws sts get-caller-identity
Error loading SSO Token: Token for https://d-9567b898c6.awsapps.com/start does not exist
tano1:0603game tano$
ログイン
cd
でホームディレクトリに戻った後にaws sso login --profile <ログインしたいSSOプロファイル名>
コマンドを打ちwebでの認証を行う。
ログイン出来たらホームディレクトリで、aws sts get-caller-identity
を打ち、認証が通らないことを確認し、作業ディレクトリへ移動した後にもう一度aws sts get-caller-identity
を打ち作業ディレクトリなら認証が通ることを確認する。
これによってログインも出来て、認証が通ってdirenvも機能していることを再確認出来た。
tano1:0603game tano$ cd
direnv: unloading
tano1:~ tano$ aws sso login --profile AdministratorAccess-252170044718-0603game-sso
Attempting to automatically open the SSO authorization page in your default browser.
If the browser does not open or you wish to use a different device to authorize this request, open the following URL:
https://d-9567b898c6.awsapps.com/start/#/device
Then enter the code:
WBJZ-RSHV
Successfully logged into Start URL: https://d-9567b898c6.awsapps.com/start
tano1:~ tano$ aws sts get-caller-identity
Unable to locate credentials. You can configure credentials by running "aws configure".
tano1:~ tano$ cd 0603game/
direnv: loading ~/0603game/.envrc
direnv: export +AWS_PROFILE ~XPC_SERVICE_NAME
tano1:0603game tano$ aws sts get-caller-identity
{
"UserId": "〜省略〜",
"Account": "〜省略〜",
"Arn": "〜省略〜"
}
tano1:0603game tano$
S3作成
今はデフォルトパブリックアクセスが出来ないようになってるので、変なことをせん限りセキュリティ面では大丈夫です。恐らく。。。
AWS CLIなら
①作業するプロジェクトディレクトリへ移動し、認証が通ってることを確認します。
②S3の作成コマンドを4行まとめてコマンド打ちます。
③タグを付与するコマンドを3行まとめて打ちます
④付与されたタグを確認するコマンドを打つ。
tano@tanoyuusukenoMacBook-Air 0603game % aws sts get-caller-identity
{
"UserId": "〜省略〜",
"Account": "〜省略〜",
"Arn": "〜省略〜"
}
tano@tanoyuusukenoMacBook-Air 0603game % aws s3api create-bucket \
--bucket <一意で任意な名前> \
--region ap-northeast-1 \
--create-bucket-configuration LocationConstraint=ap-northeast-1
{
"Location": "http://tano-0603game-bucket.s3.amazonaws.com/"
}
tano@tanoyuusukenoMacBook-Air 0603game % aws s3api put-bucket-tagging \
--bucket <一意で任意な名前> \
--tagging 'TagSet=[{Key=Owner,Value=tano},{Key=Project,Value=0603game}]'
tano@tanoyuusukenoMacBook-Air 0603game % aws s3api get-bucket-tagging --bucket <一意で任意な名前>
{
"TagSet": [
{
"Key": "Project",
"Value": "0603game"
},
{
"Key": "Owner",
"Value": "tano"
}
]
}
tano@tanoyuusukenoMacBook-Air 0603game %
AWSコンソールから
AWSコンソールからS3で検索し、左のタブから汎用バケットを選択し、バケットの作成を選択。
バケット名は任意で一意な名前にして、タグを追加する。
他のはデフォルトで問題ないです。細かく設定したい場合は都度調べてください。
Githubに登録しリポジトリを作成
ぶっちゃけGithubよく分かってません笑
Githubに登録
とにかく気合いで登録してください!
日本語化に対応してないのは謎過ぎます。
一旦二要素認証しとけば間違いない。他にもこれはしとこうみたいなのあるはず。。。
リポジトリを作成
静的なwebサイトのソースコードなんてpublicで良いと思うので(たぶん)、publicリポジトリで問題ないはず。。。
publicを選択し、名前を決めてリポジトリを作成する。
ローカルで連携させる
作業ディレクトリでgit初期化
tano@tanoyuusukenoMacBook-Air 0603game % git init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Initialized empty Git repository in /Users/tano/0603game/.git/
tano@tanoyuusukenoMacBook-Air 0603game %
リモートリポジトリとの関連付け
本来は一番初めのpushの時にgithubのIDとパスワードを打つはずが、VS codeの拡張機能でweb上で認証された。
注意が必要。
tano@tanoyuusukenoMacBook-Air 0603game % echo "# 0603game-tano-public" >> README.md
tano@tanoyuusukenoMacBook-Air 0603game % git init
Reinitialized existing Git repository in /Users/tano/0603game/.git/
tano@tanoyuusukenoMacBook-Air 0603game % git add README.md
tano@tanoyuusukenoMacBook-Air 0603game % git commit -m "最初のコミット"
[master (root-commit) 521b0b7] 最初のコミット
Committer: 多野優介 <tano@tanoyuusukenoMacBook-Air.local>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly. Run the
following command and follow the instructions in your editor to edit
your configuration file:
git config --global --edit
After doing this, you may fix the identity used for this commit with:
git commit --amend --reset-author
1 file changed, 1 insertion(+)
create mode 100644 README.md
tano@tanoyuusukenoMacBook-Air 0603game % git branch -M main
tano@tanoyuusukenoMacBook-Air 0603game % git remote add origin https://github.com/YusukeTano/0603game-tano-public.git
tano@tanoyuusukenoMacBook-Air 0603game % git push -u origin main
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 275 bytes | 275.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To https://github.com/YusukeTano/0603game-tano-public.git
* [new branch] main -> main
branch 'main' set up to track 'origin/main'.
tano@tanoyuusukenoMacBook-Air 0603game %
.gitignoreファイルを作成
gitに追跡させたくないファイルここに記載。
まぁ今回は特にないけど、お作法的に作りました。
tano@tanoyuusukenoMacBook-Air 0603game % vi .gitignore
tano@tanoyuusukenoMacBook-Air 0603game % cat .gitignore
# OS に関連する隠しファイルを無視
.DS_Store
# VS Code の設定ファイルを無視
.vscode/
# 環境設定ファイルを無視
.envrc
# ビルド成果物を無視
*.log
tano@tanoyuusukenoMacBook-Air 0603game %
1回手動でS3へファイルをアップロード
S3へアップロード
作業するプロジェクトディレクトリから、AWSへ認証が通ってることを確認しアップロード
aws s3 cp <ディレクトリ配下のファイル名> s3://<バケット名>/
:ファイルをアップロード
aws s3 ls s3://<バケット名>/
:バケット配下のファイルを見る
tano@tanoyuusukenoMacBook-Air 0603game % aws s3 cp Ver.1-0603game.html s3://tano-0603game-bucket/
upload: ./Ver.1-0603game.html to s3://tano-0603game-bucket/Ver.1-0603game.html
tano@tanoyuusukenoMacBook-Air 0603game % aws s3 cp Ver.1-0603game-error.html s3://tano-0603game-bucket/
upload: ./Ver.1-0603game-error.html to s3://tano-0603game-bucket/Ver.1-0603game-error.html
tano@tanoyuusukenoMacBook-Air 0603game % aws s3 ls s3://tano-0603game-bucket/
2025-06-04 19:20:38 20329 Ver.1-0603game-error.html
2025-06-04 19:20:31 54503 Ver.1-0603game.html
tano@tanoyuusukenoMacBook-Air 0603game %
コンソールからでも可能
S3→汎用バケット→対象のバケットを選択からアップロードを選択。
アップロードファイルを確認
アップロードファイルを選択し、右上の開くを選択
Github Actionsでデプロイ自動化
仕組み
Github側が対象のAWSへデプロイするときに認証情報が必要になる。
その方法は様々あるが、ベストプラクティスに則りOIDC IDプロバイダを使用しその瞬間だけ一時的に権限を与える方法にしてください。
(雑なclaudeの図)
IDプロバイダを追加
検索バーから、IAM→IDプロバイダ→プロバイダを追加を選択。
OpenID Cnnectを選択し、プロバイダURLと対象者を入力し、適切なタグを設定しプロバイダを追加を選択。
プロバイダURL
:https://token.actions.githubusercontent.com
対象者
:sts.amazonaws.com
アマゾン ウェブ サービスでの OpenID Connect の構成
IAMロールに付与する許可ポリシーを作成する
Github Actions用のIAMロールとポリシーを作成するので、権限は使うものに絞りたい。
今回はS3へS3 Syncを実行するので、そちらに必要な権限のみ付与する。
検索バーからIAMを検索し、IAM→ポリシー→ポリシーの作成を選択
下記のポリシーを記載し、次へを選択。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::<対象のバケット名>"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::<対象のバケット名>/*"
]
}
]
}
ポリシー名と、適切なタグを記載しポリシーの作成を選択。
IAMロールを作成
検索バーからIAMを検索し、IAM→ロール→ロールを作成を選択。
カスタム信頼ポリシーを選択し、デフォルトの記載と以下のカスタム信頼ポリシーを書き換えて次へを選択。
(<>内は都度書き換えてください)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::<アカウントID>:oidc-provider/token.actions.githubusercontent.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"token.actions.githubusercontent.com:aud": "sts.amazonaws.com"
},
"StringLike": {
"token.actions.githubusercontent.com:sub": "repo:<Githubのユーザー名>/<リポジトリ名>:ref:refs/heads/main"
}
}
}
]
}
先ほど作成したポリシーを選択し次へを選択。
その後ロール名を記載し、適切なタグを追加しロールを作成を選択。
※作成したIAMロールのARNは控えててください。
Github Actionsのファイルを作成する
Github Actionsを動かすディレクトリとファイルを作成。
tano1:0603game tano$ mkdir -p .github/workflows
tano1:0603game tano$ ls -la --tree
〜省略〜
drwxr-xr-x@ - tano 5 6 15:49 .github
drwxr-xr-x@ - tano 5 6 15:49 └── workflows
.rw-r--r--@ 191 tano 5 6 09:16 .gitignore
.rw-r--r--@ 92 tano 5 6 09:17 0603game.code-workspace
.rw-r--r--@ 24 tano 5 6 11:17 README.md
.rw-r--r--@ 20k tano 5 6 09:16 Ver.1-0603game-error.html
.rw-r--r--@ 55k tano 5 6 09:16 Ver.1-0603game.html
tano1:0603game tano$
.github/workflows/の下にdeploy-to-s3.ymlの中に以下を記載する。
<>内は適宜置き換え。
tano1:0603game tano$ cat .github/workflows/deploy-to-s3.yml
name: Deploy Static Site to S3 via OIDC
on:
push:
branches:
- main # mainブランチへのプッシュ時にワークフローを実行
jobs:
deploy:
runs-on: ubuntu-latest
# GitHub ActionsにOIDCトークンを発行し、リポジトリを読み取る権限を付与
permissions:
id-token: write # OIDCトークンをリクエストするために必須
contents: read # リポジトリのコードをチェックアウトするために必須
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Configure AWS credentials using OIDC
uses: aws-actions/configure-aws-credentials@v4
with:
# 作成したIAMロールのARNを指定
role-to-assume: <IAMロールのARNを指定>
aws-region: ap-northeast-1
# (オプション) セッションに名前を付けるとCloudTrailログで識別しやすくなります
role-session-name: GitHubActionsS3DeploySession
- name: Sync files to S3
run: |
aws s3 sync ./public/ s3://<バケット名>/ --delete
tano1:0603game tano$
public以下のファイルを同期するように設定したので、ディレクトリを作成しファイルを移動。
ファイル移動する時はgitが追跡出来るようにする。
ファイルの名前はindex.htmlがスタンダードらしいのリネームも含めて。
ついでに、add,commit,pushをしてActionsが動いて、S3にデプロイされてるのを確認する。
tano1:0603game tano$ mkdir public
tano1:0603game tano$ git mv Ver.1-0603game.html public/index.html
tano1:0603game tano$ git mv Ver.1-0603game-error.html public/error.html
tano1:0603game tano$ ls --tree
0603game.code-workspace
public
├── error.html
└── index.html
README.md
tano1:0603game tano$ git add .
tano1:0603game tano$ git commit -m "Organize website files into public dir and setup GitHub Actions for S3 OIDC deployment"
[main 0624527] Organize website files into public dir and setup GitHub Actions for S3 OIDC deployment
3 files changed, 31 insertions(+)
create mode 100644 .github/workflows/deploy-to-s3.yml
rename Ver.1-0603game-error.html => public/error.html (100%)
rename Ver.1-0603game.html => public/index.html (100%)
tano1:0603game tano$ git push origin main
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 8 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 1.20 KiB | 1.20 MiB/s, done.
Total 6 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/YusukeTano/0603game-tano-public.git
147b4d3..0624527 main -> main
tano1:0603game tano$
続きへ!!!
Discussion