name: Nmap on: workflow_dispatch jobs: build-x86: name: Build Nmap x86 runs-on: ubuntu-latest container: muslcc/x86_64:i686-linux-musl outputs: version: ${{ steps.package_nmap.outputs.PACKAGED_VERSION }} steps: - name: Checkout uses: actions/checkout@v2 - name: Install dependencies run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh - name: Build Nmap run: $GITHUB_WORKSPACE/build/targets/build_nmap.sh x86 - name: Package Nmap id: package_nmap run: $GITHUB_WORKSPACE/package/targets/nmap/package.sh /output x86 - name: Upload tarball uses: actions/upload-artifact@v2 with: name: ${{ steps.package_nmap.outputs.PACKAGED_TARBALL }} path: ${{ steps.package_nmap.outputs.PACKAGED_TARBALL_PATH }} - name: Upload zip uses: actions/upload-artifact@v2 with: name: ${{ steps.package_nmap.outputs.PACKAGED_ZIP }} path: ${{ steps.package_nmap.outputs.PACKAGED_ZIP_PATH }} build-x86_64: name: Build Nmap x86_64 runs-on: ubuntu-latest container: muslcc/x86_64:x86_64-linux-musl steps: - name: Checkout uses: actions/checkout@v2 - name: Install dependencies run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh - name: Build Nmap run: $GITHUB_WORKSPACE/build/targets/build_nmap.sh x86_64 - name: Package Nmap id: package_nmap run: $GITHUB_WORKSPACE/package/targets/nmap/package.sh /output x86_64 - name: Upload tarball uses: actions/upload-artifact@v2 with: name: ${{ steps.package_nmap.outputs.PACKAGED_TARBALL }} path: ${{ steps.package_nmap.outputs.PACKAGED_TARBALL_PATH }} - name: Upload zip uses: actions/upload-artifact@v2 with: name: ${{ steps.package_nmap.outputs.PACKAGED_ZIP }} path: ${{ steps.package_nmap.outputs.PACKAGED_ZIP_PATH }} build-armhf: name: Build Nmap ARMHF runs-on: ubuntu-latest container: muslcc/x86_64:arm-linux-musleabihf steps: - name: Checkout uses: actions/checkout@v2 - name: Install dependencies run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh - name: Build Nmap run: $GITHUB_WORKSPACE/build/targets/build_nmap.sh armhf - name: Package Nmap id: package_nmap run: $GITHUB_WORKSPACE/package/targets/nmap/package.sh /output armhf - name: Upload tarball uses: actions/upload-artifact@v2 with: name: ${{ steps.package_nmap.outputs.PACKAGED_TARBALL }} path: ${{ steps.package_nmap.outputs.PACKAGED_TARBALL_PATH }} - name: Upload zip uses: actions/upload-artifact@v2 with: name: ${{ steps.package_nmap.outputs.PACKAGED_ZIP }} path: ${{ steps.package_nmap.outputs.PACKAGED_ZIP_PATH }} build-aarch64: name: Build Nmap AARCH64 runs-on: ubuntu-latest container: muslcc/x86_64:aarch64-linux-musl steps: - name: Checkout uses: actions/checkout@v2 - name: Install dependencies run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh - name: Build Nmap run: $GITHUB_WORKSPACE/build/targets/build_nmap.sh aarch64 - name: Package Nmap id: package_nmap run: $GITHUB_WORKSPACE/package/targets/nmap/package.sh /output aarch64 - name: Upload tarball uses: actions/upload-artifact@v2 with: name: ${{ steps.package_nmap.outputs.PACKAGED_TARBALL }} path: ${{ steps.package_nmap.outputs.PACKAGED_TARBALL_PATH }} - name: Upload zip uses: actions/upload-artifact@v2 with: name: ${{ steps.package_nmap.outputs.PACKAGED_ZIP }} path: ${{ steps.package_nmap.outputs.PACKAGED_ZIP_PATH }} create-release: name: Create Nmap Release runs-on: ubuntu-latest needs: [build-x86, build-x86_64, build-armhf, build-aarch64] steps: - name: Checkout uses: actions/checkout@v2 - name: Prepare Environment run: mkdir /tmp/releases - name: Download Artifacts uses: actions/download-artifact@v2 with: path: /tmp/releases - name: List Artifacts run: ls -laR /tmp/releases - name: Tag Release run: | set +e git fetch --quiet --prune --unshallow --tags if [[ $(git tag -l | grep nmap-v${{ needs.build-x86.outputs.version }} | wc -l) -gt 0 ]]; then echo "Tag for nmap-v${{ needs.build-x86.outputs.version }} already exists. Skipping release creation." echo ::set-output name=NEW_RELEASE::"false" else echo "Tag for nmap-v${{ needs.build-x86.outputs.version }} missing. Starting release creation." git tag "nmap-v${{ needs.build-x86.outputs.version }}" git push origin "nmap-v${{ needs.build-x86.outputs.version }}" echo ::set-output name=NEW_RELEASE::"true" fi - name: Create Release uses: ncipollo/release-action@v1 if: ${{ steps.tag_release.outputs.NEW_RELEASE == 'true' }} with: name: Nmap v${{ needs.build-x86.outputs.version }} tag: nmap-v${{ needs.build-x86.outputs.version }} artifacts: "/tmp/releases/*/*" token: ${{ secrets.GITHUB_TOKEN }}