Created
October 20, 2020 19:00
-
-
Save vijayaraju/c273f2a02db4bf3d10ed0cdda43bd6ab to your computer and use it in GitHub Desktop.
Final automation file
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build Next.js web application | |
| on: push | |
| jobs: | |
| build-container: | |
| name: Build container | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v2 | |
| - name: Push to GitHub Packages | |
| uses: docker/build-push-action@v1 | |
| with: | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| registry: docker.pkg.github.com | |
| repository: ${{ github.repository }}/webnext | |
| tags: ${{ github.run_number }}, latest | |
| - name: Push to Docker Hub | |
| uses: docker/build-push-action@v1 | |
| with: | |
| username: ${{ secrets.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_PASSWORD }} | |
| repository: msusdev/webnext | |
| tags: ${{ github.run_number }}, latest | |
| deploy-azure-containers: | |
| name: Deploy containers to Azure | |
| runs-on: ubuntu-latest | |
| needs: build-container | |
| env: | |
| WEB_APP_NAME: <web-app-name> | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v2 | |
| - name: Login to Azure | |
| uses: azure/login@v1 | |
| with: | |
| creds: ${{ secrets.AZURE_CREDENTIALS }} | |
| - name: Deploy ACI instance | |
| uses: azure/arm-deploy@v1 | |
| with: | |
| subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION_ID }} | |
| resourcegroupName: <resource-group-name> | |
| template: azuredeploy.json | |
| - name: Deploy Web App container | |
| uses: azure/webapps-deploy@v2 | |
| with: | |
| app-name: ${{ env.WEB_APP_NAME }} | |
| images: msusdev/webnext | |
| deploy-azure-manual: | |
| name: Deploy code directly to Azure | |
| runs-on: ubuntu-latest | |
| needs: build-project | |
| env: | |
| WEB_APP_NAME: <web-app-name> | |
| steps: | |
| - name: Download site content | |
| uses: actions/download-artifact@v2 | |
| with: | |
| name: site-build | |
| - name: Login to Azure | |
| uses: azure/login@v1 | |
| with: | |
| creds: ${{ secrets.AZURE_CREDENTIALS }} | |
| - name: Deploy Web App code | |
| uses: azure/webapps-deploy@v2 | |
| with: | |
| app-name: ${{ env.WEB_APP_NAME }} | |
| package: . | |
| build-project: | |
| name: Build Next.js project | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v2 | |
| - name: Install NPM dependencies | |
| run: npm install | |
| - name: Build project assets | |
| run: npm run build | |
| - name: Upload site content | |
| uses: actions/upload-artifact@v2 | |
| with: | |
| name: site-build | |
| path: .next/ | |
| distribute-project: | |
| name: Distribute Next.js project to GitHub Releases | |
| runs-on: ubuntu-latest | |
| needs: build-project | |
| steps: | |
| - name: Download site content | |
| uses: actions/download-artifact@v2 | |
| with: | |
| name: site-build | |
| - name: Archive site content | |
| uses: thedoctor0/zip-release@master | |
| with: | |
| filename: site.zip | |
| - name: Create GitHub release | |
| id: create-new-release | |
| uses: actions/create-release@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| tag_name: v${{ github.run_number }} | |
| release_name: Release ${{ github.run_number }} | |
| - name: Upload asset to GitHub release | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create-new-release.outputs.upload_url }} | |
| asset_path: ./site.zip | |
| asset_name: site-v${{ github.run_number }}.zip | |
| asset_content_type: application/zip |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment