chore: add s3 deploy in github actions #22
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: Deploy | |
| on: | |
| push: | |
| branches: | |
| - main | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write # To push a branch | |
| pull-requests: write # To create a PR from that branch | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install latest mdbook | |
| run: | | |
| tag=$(curl 'https://api.github.com/repos/rust-lang/mdbook/releases/latest' | jq -r '.tag_name') | |
| url="https://github.com/rust-lang/mdbook/releases/download/${tag}/mdbook-${tag}-x86_64-unknown-linux-gnu.tar.gz" | |
| mkdir mdbook | |
| curl -sSL $url | tar -xz --directory=./mdbook | |
| echo `pwd`/mdbook >> $GITHUB_PATH | |
| - name: Deploy GitHub Pages | |
| run: | | |
| # This assumes your book is in the root of your repository. | |
| # Just add a `cd` here if you need to change to another directory. | |
| mdbook build | |
| git worktree add gh-pages | |
| git config user.name "Deploy from CI" | |
| git config user.email "" | |
| cd gh-pages | |
| # Delete the ref to avoid keeping history. | |
| git update-ref -d refs/heads/gh-pages | |
| rm -rf * | |
| mv ../book/* . | |
| git add . | |
| git commit -m "Deploy $GITHUB_SHA to gh-pages" | |
| git push --force --set-upstream origin gh-pages | |
| - name: Configure AWS CLI for S3-compatible service | |
| uses: aws-actions/configure-aws-credentials@v2 | |
| with: | |
| aws-access-key-id: ${{ secrets.S3_ACCESS_KEY }} | |
| aws-secret-access-key: ${{ secrets.S3_SECRET_KEY }} | |
| aws-region: ${{ secrets.S3_REGION }} | |
| endpoint-url: ${{ secrets.S3_ENDPOINT_URL }} | |
| - name: Deploy to S3-compatible storage | |
| run: | | |
| # Navigate to where the built files are | |
| cd gh-pages | |
| # Sync all files to the S3 bucket | |
| aws s3 sync . s3://${{ secrets.S3_BUCKET_NAME }} \ | |
| --delete \ | |
| --endpoint-url ${{ secrets.S3_ENDPOINT_URL }} | |
| echo "Successfully deployed to S3-compatible storage" |