diff --git a/.github/workflows/publish_packages.yml b/.github/workflows/publish_packages.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6be318b0959e2c5e10575774c26722dc22526982
--- /dev/null
+++ b/.github/workflows/publish_packages.yml
@@ -0,0 +1,83 @@
+on:
+  release:
+    types: [published, prereleased]
+
+name: Publish Package
+
+jobs:
+  check:
+    name: Check
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v1
+      - uses: actions-rs/toolchain@v1
+        with:
+          toolchain: stable
+          override: true
+      - run: make Cargo.toml
+      - run: cargo install cargo-unleash --version 1.0.0-alpha.10
+      - run: cargo unleash check
+  
+  fmt:
+    name: Rustfmt
+    runs-on: ubuntu-latest
+    needs: check
+    steps:
+      - uses: actions/checkout@v1
+      - uses: actions-rs/toolchain@v1
+        with:
+          toolchain: stable
+          override: true
+      - run: rustup component add rustfmt
+      - run: make Cargo.toml
+      - uses: actions-rs/cargo@v1
+        with:
+          command: fmt
+          args: --all
+
+  test:
+    name: Tests
+    runs-on: ubuntu-latest
+    needs: fmt
+    steps:
+      - uses: actions/checkout@v1
+      - uses: actions-rs/toolchain@v1
+        with:
+          toolchain: stable
+          override: true
+      - run: make Cargo.toml
+      - uses: actions-rs/cargo@v1
+        with:
+          command: test
+
+  clippy:
+    name: Clippy
+    runs-on: ubuntu-latest
+    needs: test
+    steps:
+      - uses: actions/checkout@v1
+      - uses: actions-rs/toolchain@v1
+        with:
+          toolchain: stable
+          override: true
+      - run: make Cargo.toml
+      - run: rustup component add clippy
+      - uses: actions-rs/cargo@v1
+        with:
+          command: clippy
+
+  publish:
+    name: Publish Package
+    runs-on: ubuntu-latest
+    needs: clippy
+    steps:
+      - uses: actions/checkout@v1
+      - uses: actions-rs/toolchain@v1
+        with:
+          toolchain: stable
+          override: true
+      - run: make Cargo.toml
+      - run: cargo install cargo-unleash --version 1.0.0-alpha.10
+      - run: cargo unleash em-dragons --no-check 
+        env:
+          CRATES_TOKEN: ${{ secrets.CRATES_TOKEN }}