```yml name: Build and Deploy on: push: branches: - master jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout 🛎️ uses: actions/checkout@v2 with: persist-credentials: false - name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built. run: | npm install npm run build - name: Install SSH Client 🔑 uses: webfactory/ssh-agent@v0.2.0 # This step installs the ssh client into the workflow run. There's many options available for this on the action marketplace. with: ssh-private-key: ${{ secrets.DEPLOY_KEY }} - name: Deploy 🚀 uses: JamesIves/github-pages-deploy-action@releases/v3-test with: BASE_BRANCH: master BRANCH: gh-pages FOLDER: build CLEAN: true SSH: true # SSH must be set to true so the deploy action knows which protocol to deploy with. ```
```yml name: Build and Deploy on: [push] jobs: build: runs-on: windows-latest # The first job utilizes windows-latest steps: - name: Checkout 🛎️ uses: actions/checkout@v2 with: persist-credentials: false - name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built. run: | npm install npm run build - name: Upload Artifacts 🔺 # The project is then uploaded as an artifact named 'site'. uses: actions/upload-artifact@v1 with: name: site path: build deploy: needs: [build] # The second job must depend on the first one to complete before running, and uses ubuntu-latest instead of windows. runs-on: ubuntu-latest steps: - name: Checkout 🛎️ uses: actions/checkout@v2 with: persist-credentials: false - name: Download Artifacts 🔻 # The built project is downloaded into the 'site' folder. uses: actions/download-artifact@v1 with: name: site - name: Deploy 🚀 uses: JamesIves/github-pages-deploy-action@releases/v3 with: ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} BRANCH: gh-pages FOLDER: "site" # The deployment folder should match the name of the artifact. Even though our project builds into the 'build' folder the artifact name of 'site' must be placed here. ```