diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644
index 0000000..e8cfc1d
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -0,0 +1,43 @@
+name: Deploy to GitHub Pages
+
+# Run workflow on every push to the master branch
+on:
+ push:
+ branches: [ master ]
+
+jobs:
+ deploy-to-github-pages:
+ # use ubuntu-latest image to run steps on
+ runs-on: ubuntu-latest
+ steps:
+ # uses GitHub's checkout action to checkout code form the master branch
+ - uses: actions/checkout@v2
+
+ # sets up .NET Core SDK 3.1
+ - name: Setup .NET Core SDK
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 5.0.x
+
+ # publishes Blazor project to the release-folder
+ - name: Publish .NET Core Project
+ run: dotnet publish cowin/cowin.csproj -c Release -o release --nologo
+
+ # changes the base-tag in index.html from '/' to 'cowin' to match GitHub Pages repository subdirectory
+ - name: Change base-tag in index.html from / to cowin
+ run: sed -i 's///g' release/wwwroot/index.html
+
+ # copy index.html to 404.html to serve the same file when a file is not found
+ - name: copy index.html to 404.html
+ run: cp release/wwwroot/index.html release/wwwroot/404.html
+
+ # add .nojekyll file to tell GitHub pages to not treat this as a Jekyll project. (Allow files and folders starting with an underscore)
+ - name: Add .nojekyll file
+ run: touch release/wwwroot/.nojekyll
+
+ - name: Commit wwwroot to GitHub Pages
+ uses: JamesIves/github-pages-deploy-action@3.7.1
+ with:
+ GITHUB_TOKEN: ${{ secrets.GT_TOKEN }}
+ BRANCH: gh-pages
+ FOLDER: release/wwwroot