name: Release on: release: types: [published] jobs: build-frontend: name: Build Frontend runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Build Frontend uses: ./.github/actions/build-frontend - name: Upload dist uses: actions/upload-artifact@v3 with: name: frontend path: ./admin-frontend/build/ publish-pypi: runs-on: ubuntu-latest needs: build-frontend steps: - uses: actions/checkout@v3 - name: Download frontend files uses: actions/download-artifact@v2 with: name: frontend path: ./src/plugins/nonebot_bison/admin_page/dist - name: Setup Python environment uses: ./.github/actions/setup-python - name: Publish PyPI run: poetry publish --build -u ${{ secrets.PYPI_USERNAME }} -p ${{ secrets.PYPI_PASSWORD }} || echo "Already pushed to pypi" - name: Upload Release Assets uses: alexellis/upload-assets@0.2.3 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: asset_paths: '["./dist/*"]' publish-docker: runs-on: ubuntu-latest needs: build-frontend steps: - uses: actions/checkout@v3 - name: Download frontend files uses: actions/download-artifact@v2 with: name: frontend path: ./src/plugins/nonebot_bison/admin_page/dist - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Login to DockerHub if: github.event_name != 'pull_request' uses: docker/login-action@v1 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build and push uses: docker/build-push-action@v2 with: context: . file: ./docker/Dockerfile_with_frontend push: true tags: | felinae98/nonebot-bison:latest felinae98/nonebot-bison:${{ github.event.release.tag_name }} cache-from: type=gha cache-to: type=gha,mode=max - name: Build Sentry and push uses: docker/build-push-action@v2 with: context: . file: ./docker/Dockerfile_with_frontend_sentry push: true tags: felinae98/nonebot-bison:${{ github.event.release.tag_name }}-sentry cache-from: type=gha cache-to: type=gha,mode=max deploy-web: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Build Docs uses: ./.github/actions/build-docs - name: Deploy to Netlify uses: nwtgck/actions-netlify@v1 with: publish-dir: "./docs/.vuepress/dist" production-deploy: true github-token: ${{ secrets.GITHUB_TOKEN }} deploy-message: "Deploy ${{ github.event.release.tag_name }}" enable-commit-comment: false alias: ${{ github.event.release.tag_name }} env: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}