website/.gitea/workflows/test-pr.yml

53 lines
2.8 KiB
YAML

name: build and deploy website PR preview
env:
AWS_REGION: eu-central-1
on:
pull_request:
types: [opened, reopened, synchronize]
jobs:
build-and-deploy:
name: build and deploy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Hugo
uses: https://github.com/peaceiris/actions-hugo@v2
with:
hugo-version: "0.111.3"
extended: true
- name: Setup Go
uses: https://github.com/actions/setup-go@v4
with:
go-version: ">=1.20.1"
- name: Build
run: |
make clean
make build
- name: Install AWS Client Tool
run: apt update -y && apt install -y awscli
- name: "[PR] create s3 bucket"
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: |
aws s3api create-bucket --acl public-read --bucket preview-gitea-org-website-${{ github.event.repository.name }}-${{ github.event.number }} --region ${{ env.AWS_REGION }} --create-bucket-configuration LocationConstraint=${{ env.AWS_REGION }} || /bin/true
aws s3 website s3://preview-gitea-org-website-${{ github.event.repository.name }}-${{ github.event.number }}/ --index-document index.html --error-document error.html || /bin/true
- name: "[PR] deploy website to S3 bucket"
uses: https://github.com/jakejarvis/s3-sync-action@master
with:
args: --acl public-read --follow-symlinks --delete
env:
AWS_S3_BUCKET: preview-gitea-org-website-${{ github.event.repository.name }}-${{ github.event.number }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ env.AWS_REGION }}}
SOURCE_DIR: public/
DEST_DIR: /
- name: "[PR] Post comment to PR"
env:
GITEA_TOKEN: ${{ secrets.COMMENT_ACCESS_TOKEN }}
run: |
'COMMENTS=$(curl -sL -X GET -H "Authorization: token $GITEA_TOKEN" https://gitea.com/api/v1/repos/${{ github.event.repository.owner }}/${{ github.event.repository.name }}/issues/${{ github.event.number }}/comments)'
'if [[ $COMMENTS == "[]" ]]; then curl -sL -X POST -H "Authorization: token $GITEA_TOKEN" -H "Content-type: application/json" https://gitea.com/api/v1/repos/${{ github.event.repository.owner }}/${{ github.event.repository.name }}/issues/${{ github.event.number }}/comments -d "{\"body\": \"Website preview: http://preview-gitea-org-website-${{ github.event.repository.name }}-${{ github.event.number }}.s3-website.${{ env.AWS_REGION }}}.amazonaws.com/\"}"; else echo -e "\n INFO: Comment already exist, doing nothing"; fi'