name: Build and Release on Tag on: push: tags: - 'v*' jobs: build: runs-on: ubuntu-latest strategy: matrix: node-version: ['lts/*'] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} - run: npm i -g grunt-cli - run: npm install - run: grunt deploy-image: runs-on: ubuntu-latest needs: build steps: - uses: actions/checkout@v2 - name: get-npm-version id: package-version uses: martinbeentjes/npm-get-version-action@main - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push Docker image run: | docker buildx build . \ --platform linux/amd64,linux/arm64,linux/arm/v7 \ -t patrikx3/p3x-redis-ui:latest \ -t patrikx3/p3x-redis-ui:${{ steps.package-version.outputs.current-version }} \ --push package-and-release-macos: runs-on: macos-latest needs: deploy-image steps: - uses: actions/checkout@v2 - name: Set up Node.js uses: actions/setup-node@v2 with: node-version: 'lts/*' - name: Install dependencies run: npm install - name: Build and package macOS app run: npm run publish-macos - name: Upload macOS build to GitHub Release uses: softprops/action-gh-release@v1 with: tag_name: ${{ github.ref_name }} files: | dist/mac/*.dmg dist/mac/*.zip dist/mac/*.blockmap dist/mac/latest-mac.yml env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} package-and-release-windows: runs-on: windows-latest needs: deploy-image steps: - uses: actions/checkout@v2 - name: Set up Node.js uses: actions/setup-node@v2 with: node-version: 'lts/*' - name: Install dependencies run: npm install - name: Build and package Windows app run: npm run publish-windows - name: Upload Windows build to GitHub Release uses: softprops/action-gh-release@v1 with: tag_name: ${{ github.ref_name }} files: | dist/*.exe dist/*.msi dist/*.blockmap dist/latest.yml env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}