diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 4705cd6a..00000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,116 +0,0 @@ -name: Deploy - -on: - release: - types: [published] - -jobs: - macos: - name: Upload macOS Catalina release binary - runs-on: macos-10.15 - - strategy: - matrix: - xcode: - - "12" # Swift 5.3 - - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - ref: ${{ github.event.release.tag_name }} - - name: Build and Package - run: | - make swift-doc - tar -cf swift-doc-${{ github.event.release.tag_name }}.catalina.bottle.tar swift-doc - gzip -f swift-doc-${{ github.event.release.tag_name }}.catalina.bottle.tar - env: - DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer - - name: Upload - uses: actions/upload-release-asset@v1.0.1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./swift-doc - asset_name: swift-doc-${{ github.event.release.tag_name }}.catalina.bottle.tar.gz - asset_content_type: application/gzip - - linux: - name: Upload Linux release binary - - runs-on: ubuntu-latest - - strategy: - matrix: - swift: ["5.3"] - - container: - image: swift:${{ matrix.swift }} - - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - ref: ${{ github.event.release.tag_name }} - - name: Install System Dependencies - run: | - apt-get update - apt-get install -y libxml2-dev graphviz - - name: Build and Package - run: | - make swift-doc - tar -cf swift-doc-${{ github.event.release.tag_name }}.linux.bottle.tar.gz swift-doc - gzip -f swift-doc-${{ github.event.release.tag_name }}.linux.bottle.tar.gz - - name: Upload - uses: actions/upload-release-asset@v1.0.1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./swift-doc - asset_name: swift-doc-${{ github.event.release.tag_name }}.linux.bottle.tar.gz - asset_content_type: application/gzip - - homebrew: - name: Update Homebrew formula - runs-on: ubuntu-latest - needs: [macos, linux] - steps: - - uses: NSHipster/update-homebrew-formula-action@main - with: - repository: SwiftDocOrg/swift-doc - tap: SwiftDocOrg/homebrew-formulae - formula: Formula/swift-doc.rb - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - docker: - name: Build and push Docker container - - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - ref: ${{ github.event.release.tag_name }} - - 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 - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and push - uses: docker/build-push-action@v2 - with: - context: . - file: ./Dockerfile - platforms: linux/amd64 - push: true - tags: | - swiftdoc/swift-doc:latest - swiftdoc/swift-doc:${{ github.event.release.tag_name }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..481443e1 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,80 @@ +name: Publish + +on: + release: + types: [created, published] + +jobs: + formula: + name: Update Homebrew formula + runs-on: ubuntu-latest + steps: + - name: Update the Homebrew formula with latest release + uses: NSHipster/update-homebrew-formula-action@main + with: + repository: SwiftDocOrg/swift-doc + tap: SwiftDocOrg/homebrew-formulae + formula: Formula/swift-doc.rb + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + bottle: + name: Build and distribute Homebrew bottle for macOS Catalina + runs-on: macos-10.15 + needs: [formula] + steps: + - name: Build a bottle using Homebrew + run: | + brew tap swiftdocorg/formulae + brew install --build-bottle --verbose swift-doc + brew bottle swift-doc + - name: Upload the bottle to the GitHub release + uses: actions/upload-release-asset@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: ./swift-doc--${{ github.event.release.tag_name }}.catalina.bottle.tar.gz + asset_name: swift-doc-${{ github.event.release.tag_name }}.catalina.bottle.tar.gz + asset_content_type: application/gzip + - name: Update the Homebrew formula again with bottle + uses: NSHipster/update-homebrew-formula-action@main + with: + repository: SwiftDocOrg/swift-doc + tap: SwiftDocOrg/homebrew-formulae + formula: Formula/swift-doc.rb + message: | + Add bottle for swift-doc ${{ github.event.release.tag_name }} + on macOS Catalina + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + docker: + name: Build and push Docker container + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: ${{ github.event.release.tag_name }} + - 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 + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: . + file: ./Dockerfile + platforms: linux/amd64 + push: true + tags: | + swiftdoc/swift-doc:latest + swiftdoc/swift-doc:${{ github.event.release.tag_name }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 97e51735..a5343a55 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,7 +26,7 @@ jobs: - name: Create Release uses: actions/create-release@v1 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} with: tag_name: ${{ github.ref }} release_name: ${{ github.ref }}