### Description
- As the title.
### Package Changes
_No response_
### Screenshots
_No response_
### Reference
- Resolves#36
- Solution: https://stackoverflow.com/questions/75131872/error-failed-to-solve-failed-commit-on-ref-unexpected-status-400-bad-reques
- Docker document: https://docs.docker.com/build/ci/github-actions/attestations/#max-level-provenance
> Note that adding attestations to an image means you must push the image to a registry directly, as opposed to loading the image to the local image store of the runner. This is because the local image store doesn't support loading images with attestations.
### Checklist
- [x] A milestone is set
- [x] The related issuse has been linked to this branch
Reviewed-on: #38
Reviewed-by: zoe <zoe@noreply.localhost>
Co-authored-by: SquidSpirit <squid@squidspirit.com>
Co-committed-by: SquidSpirit <squid@squidspirit.com>
### Description
As the title.
### Package Changes
_No response_
### Screenshots
_No response_
### Reference
- Resolves#34
- [GitHub Action - Docker Build And Push](https://github.com/marketplace/actions/build-and-push-docker-images#customizing)
### Checklist
- [x] A milestone is set
- [x] The related issuse has been linked to this branch
Reviewed-on: #35
Reviewed-by: zoe <zoe@noreply.localhost>
Co-authored-by: SquidSpirit <squid@squidspirit.com>
Co-committed-by: SquidSpirit <squid@squidspirit.com>
### Description
- Create a Dockerfile to build the docker image.
- Set up the workflow to run deployment, which is to build and upload image to remote registry.
- Add a head meta html tag to show the version.
### Package Changes
_No response_
### Screenshots
_No response_
### Reference
Resolves#9
### Checklist
- [x] A milestone is set
- [x] The related issuse has been linked to this branch
Reviewed-on: #33
Reviewed-by: zoe <zoe@noreply.localhost>
Co-authored-by: SquidSpirit <squid@squidspirit.com>
Co-committed-by: SquidSpirit <squid@squidspirit.com>
### Description
- The validation regex is `^(BLOG-[0-9]+|NO-ISSUE) [A-Z].+$`
### Package Changes
_No response_
### Screenshots
_No response_
### Reference
_No issue_
### Checklist
- [x] The title is meet the format `'BLOG-XXX Title title title'`
- [ ] A milestone is set
- [ ] The related issuse has been linked to this branch
Reviewed-on: #30
Co-authored-by: SquidSpirit <squid@squidspirit.com>
Co-committed-by: SquidSpirit <squid@squidspirit.com>
### Description
- As the title
### Package Changes
_No response_
### Screenshots
_No response_
### Reference
_No issue_
### Checklist
- [x] The title is meet the format `BLOG-XXX: Title title title`
- [ ] A milestone is set
- [ ] The related issuse has been linked to this branch
Reviewed-on: #29
Co-authored-by: SquidSpirit <squid@squidspirit.com>
Co-committed-by: SquidSpirit <squid@squidspirit.com>
### Description
- I found a build error when setting up gitea action, which is caused by circular dependency.
- We couldn't call dispatch in reducer, so something like streaming, delay, set interval could not be use in reducer directly.
- As for async function, we can use [`createAsyncTank`](https://redux-toolkit.js.org/api/createAsyncThunk).
### Package Changes
_No response_
### Screenshots
_No response_
### Reference
Resolves#8
### Checklist
- [x] A milestone is set
Reviewed-on: #22
Co-authored-by: SquidSpirit <squid@squidspirit.com>
Co-committed-by: SquidSpirit <squid@squidspirit.com>