name: Release and GitHub Pages on: push: tags: - "v*" jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Use Node.js 14.x uses: actions/setup-node@v2 with: node-version: "14" - name: Install Dependencies run: | npm ci npm run fix-compatibility - name: Build Legacy env: GZIP: "--best" run: | npm run build tar -czf legacy.tar.gz -C ./dist . cd dist zip -rJ9 ../legacy.zip * cd .. - name: Build Extension (on legacy) env: GZIP: "--best" run: | npm run make-extension cd dist zip -rJ9 ../extension.zip * cd .. - name: Build Modern env: GZIP: "--best" run: | npm run build -- --modern tar -czf modern.tar.gz -C ./dist . cd dist zip -rJ9 ../modern.zip * cd .. - name: Checksum run: sha256sum *.tar.gz *.zip > sha256sum.txt - name: Deploy uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./dist - name: Get current time id: date run: echo "::set-output name=date::$(date +'%Y/%m/%d')" - name: Create a Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: "Build ${{ steps.date.outputs.date }}" draft: true - name: Upload Release Assets - legacy.tar.gz uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./legacy.tar.gz asset_name: legacy.tar.gz asset_content_type: application/gzip - name: Upload Release Assets - legacy.zip uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./legacy.zip asset_name: legacy.zip asset_content_type: application/zip - name: Upload Release Assets - modern.tar.gz uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./modern.tar.gz asset_name: modern.tar.gz asset_content_type: application/gzip - name: Upload Release Assets - modern.zip uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./modern.zip asset_name: modern.zip asset_content_type: application/zip - name: Upload Release Assets - extension.zip uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./extension.zip asset_name: extension.zip asset_content_type: application/zip - name: Upload Release Assets - sha256sum.txt uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./sha256sum.txt asset_name: sha256sum.txt asset_content_type: text/plain - 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 docker and push (on modern) uses: docker/build-push-action@v2 with: context: . file: ./Dockerfile platforms: linux/amd64,linux/arm64,linux/386 push: true tags: | ix64/unlock-music:latest ix64/unlock-music:${{ GITHUB_REF#refs/tags/ }}