name: build and push on: push: branches: - main tags: - "**" pull_request: env: IMAGE_NAME: netbirdio/dashboard jobs: build_n_push: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: setup-node uses: actions/setup-node@v3 with: node-version: '20' cache: 'npm' - name: Install dependencies run: npm install - run: echo '{}' > .local-config.json - name: Download IronRDP release TS files uses: robinraju/release-downloader@v1.7 with: token: ${{ secrets.GITHUB_TOKEN }} repository: netbirdio/IronRDP latest: true fileName: "*.ts" out-file-path: 'public/ironrdp-pkg' - name: Download IronRDP release JS files uses: robinraju/release-downloader@v1.7 with: token: ${{ secrets.GITHUB_TOKEN }} repository: netbirdio/IronRDP latest: true fileName: "*.js" out-file-path: 'public/ironrdp-pkg' - name: Download IronRDP release WASM file uses: robinraju/release-downloader@v1.7 with: token: ${{ secrets.GITHUB_TOKEN }} repository: netbirdio/IronRDP latest: true fileName: "ironrdp_web_bg.wasm" out-file-path: 'public/ironrdp-pkg' - name: Get version from tag id: version run: | if [[ "${{ github.ref }}" == refs/tags/* ]]; then echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT else echo "version=development" >> $GITHUB_OUTPUT fi - name: Build run: npm run build env: NEXT_PUBLIC_DASHBOARD_VERSION: ${{ steps.version.outputs.version }} - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Docker meta id: meta uses: docker/metadata-action@v4 with: images: ${{ env.IMAGE_NAME }} - name: Login to DockerHub uses: docker/login-action@v2 with: username: ${{ secrets.NB_DOCKER_USER }} password: ${{ secrets.NB_DOCKER_TOKEN }} - name: Docker build and push uses: docker/build-push-action@v3 with: context: . file: docker/Dockerfile push: true platforms: linux/amd64,linux/arm64,linux/arm tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }}