name: Release on: push: tags: - v* jobs: build-frontend: name: Build Frontend runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Build Frontend uses: ./.github/actions/build-frontend - name: Upload dist uses: actions/upload-artifact@v4 with: name: frontend path: ./admin-frontend/build/ publish-pypi-github: runs-on: ubuntu-latest needs: build-frontend permissions: # write permission is required to create a github release contents: write # write permission is required for autolabeler # otherwise, read permission is required at least pull-requests: write steps: - uses: actions/checkout@v4 - name: Download frontend files uses: actions/download-artifact@v4 with: name: frontend path: ./nonebot_bison/admin_page/dist - name: Setup Python environment uses: ./.github/actions/setup-python - run: | echo "TAG_NAME=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV - uses: release-drafter/release-drafter@v6 with: name: Release ${{ env.TAG_NAME }} tag: ${{ env.TAG_NAME }} publish: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Publish PyPI and Github run: | poetry publish --build -u ${{ secrets.PYPI_USERNAME }} -p ${{ secrets.PYPI_PASSWORD }} || echo "Already pushed to pypi" gh release upload --clobber ${{ env.TAG_NAME }} dist/* env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} publish-docker: runs-on: ubuntu-latest needs: build-frontend steps: - uses: actions/checkout@v4 - name: Download frontend files uses: actions/download-artifact@v4 with: name: frontend path: ./nonebot_bison/admin_page/dist - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - run: | echo "TAG_NAME=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV - name: Login to DockerHub if: github.event_name != 'pull_request' uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build and push uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile_with_frontend push: true tags: | felinae98/nonebot-bison:latest felinae98/nonebot-bison:${{ env.TAG_NAME }} cache-from: type=gha cache-to: type=gha,mode=max - name: Build Sentry and push uses: docker/build-push-action@v5 with: context: . file: ./docker/Dockerfile_with_frontend_sentry push: true tags: | felinae98/nonebot-bison:${{ env.TAG_NAME }}-sentry felinae98/nonebot-bison:sentry cache-from: type=gha cache-to: type=gha,mode=max deploy-web: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Build Docs uses: ./.github/actions/build-docs - name: Deploy to Netlify uses: nwtgck/actions-netlify@v2 with: publish-dir: "./docs/.vuepress/dist" production-deploy: true github-token: ${{ secrets.GITHUB_TOKEN }} deploy-message: "Deploy ${{ env.TAG_NAME }}" enable-commit-comment: false alias: ${{ env.TAG_NAME }} env: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}