これなしでは開発できない！ VS Code x Azure おすすめ開発術

『これなしでは開発できない! VS Code + Azureおすすめ活用術』といいテーマで、自分なりのおすすめ活用術をご紹介したいと思います。

## 構成

構成は以下の通りです。

* Local environment
    * Mac
        * Visual Studio Code(VS Code) 1.49.2
* Remote environments
    * Azure Repos
    * GitHub

## メリット
### [Visual Studio Code(VS Code)](https://azure.microsoft.com/ja-jp/products/visual-studio-code/?WT.mc_id=AZ-MVP-5001601)

[Visual Studio Code(VS Code)](https://azure.microsoft.com/ja-jp/products/visual-studio-code/?WT.mc_id=AZ-MVP-5001601) には「ターミナル」が用意されています。IDE ツールは独自環境を持つものもあり、その場合、ターミナルで設定している短縮コマンドなどが動かないことがあります。
しかし、[Visual Studio Code(VS Code)](https://azure.microsoft.com/ja-jp/products/visual-studio-code/?WT.mc_id=AZ-MVP-5001601) の「ターミナル」はターミナルで設定している短縮コマンドもそのまま動作するので、[Visual Studio Code(VS Code)](https://azure.microsoft.com/ja-jp/products/visual-studio-code/?WT.mc_id=AZ-MVP-5001601) で作業した後に Mac のターミナルでコマンドを打つ必要がありません。そのため、VS Codeの画面からほぼ離れずに開発が可能になり、より開発に集中ができます。

### [Azure Repos](https://azure.microsoft.com/ja-jp/services/devops/repos/?WT.mc_id=AZ-MVP-5001601)、 [GitHub](https://github.co.jp/)

開発したコードを分散バージョン管理システム (Version Control System) で管理する場合、OSS であれば、多くの人が [GitHub](https://github.co.jp/) で管理しています。
一方、プライベートでは、[GitHub](https://github.co.jp/) で管理する場合、有料になってしまいます。プライベートリポジトリを無料で管理できるサービスは色々とありますが、後述する理由のため、[Azure Repos](https://azure.microsoft.com/ja-jp/services/devops/repos/?WT.mc_id=AZ-MVP-5001601) で管理するのがおすすめです。

#### [Azure Repos](https://azure.microsoft.com/ja-jp/services/devops/repos/?WT.mc_id=AZ-MVP-5001601) をおすすめする理由

OSS などの Public リポジトリは [GitHub](https://github.co.jp/)、Private リポジトリは [Azure Repos](https://azure.microsoft.com/ja-jp/services/devops/repos/?WT.mc_id=AZ-MVP-5001601) で管理するのがおすすめなのは、[Azure Repos](https://azure.microsoft.com/ja-jp/services/devops/repos/?WT.mc_id=AZ-MVP-5001601) と同じく Azure DevOps Service で提供されている [Azure Pipelines](https://azure.microsoft.com/ja-jp/services/devops/pipelines/?WT.mc_id=AZ-MVP-5001601) や [GitHub Actions](https://github.co.jp/features/actions) の利用が容易なためです。

いずれの分散バージョン管理システム (Version Control System) を利用したとしても、CI/CD が別途必要になります。

その点、[Azure Pipelines](https://azure.microsoft.com/ja-jp/services/devops/pipelines/?WT.mc_id=AZ-MVP-5001601) と [GitHub Actions](https://github.co.jp/features/actions) は [Migrating from Azure Pipelines to GitHub Actions - GitHub Docs](https://docs.github.com/ja/free-pro-team@latest/actions/learn-github-actions/migrating-from-azure-pipelines-to-github-actions#migrating-script-steps) の通り、書き方が類似しています。

CI/CD のスクリプトを非公開にしたいのであれば、[Azure Pipelines](https://azure.microsoft.com/ja-jp/services/devops/pipelines/?WT.mc_id=AZ-MVP-5001601) に CI/CD のスクリプトを準備すればよく、自分の思い通りに公開・非公開を選択できるのは大きなメリットです。

[Azure Pipelines](https://azure.microsoft.com/ja-jp/services/devops/pipelines/?WT.mc_id=AZ-MVP-5001601)

> jobs:
- job: scripts
  pool:
    vmImage: 'windows-latest'
  steps:
  - script: echo "This step runs in the default shell"
  - bash: echo "This step runs in bash"
  - pwsh: Write-Host "This step runs in PowerShell Core"
  - task: PowerShell@2
    inputs:
      script: Write-Host "This step runs in PowerShell"

[GitHub Actions](https://github.co.jp/features/actions)

> jobs:
  scripts:
    runs-on: windows-latest
    steps:
    - run: echo "This step runs in the default shell"
    - run: echo "This step runs in bash"
      shell: bash
    - run: Write-Host "This step runs in PowerShell Core"
      shell: pwsh
    - run: Write-Host "This step runs in PowerShell"
      shell: powershell

## まとめ

『これなしでは開発できない! VS Code + Azureおすすめ活用術』といいテーマで、自分なりのおすすめ活用術をご紹介しました。
みなさんも[『これなしでは開発できない! VS Code + Azureおすすめ活用術』](https://qiita.com/official-events/d513e4b8c3509ababcb5)という情報をお持ちでしたら、ぜひ共有してください。

## 参考
- [Visual Studio Code(VS Code)](https://azure.microsoft.com/ja-jp/products/visual-studio-code/?WT.mc_id=AZ-MVP-5001601)
- [Azure Repos](https://azure.microsoft.com/ja-jp/services/devops/repos/?WT.mc_id=AZ-MVP-5001601)
- [GitHub](https://github.co.jp/)
- [Azure Pipelines](https://azure.microsoft.com/ja-jp/services/devops/pipelines/?WT.mc_id=AZ-MVP-5001601)
- [GitHub Actions](https://github.co.jp/features/actions)
- [Migrating from Azure Pipelines to GitHub Actions - GitHub Docs](https://docs.github.com/ja/free-pro-team@latest/actions/learn-github-actions/migrating-from-azure-pipelines-to-github-actions)