diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000000..60f436952e --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,77 @@ +name: CI/CD Pipeline + +on: + push: + branches: + - develop + - main + - appimage-fix + workflow_dispatch: + +jobs: + checkout_and_build: + runs-on: ubuntu-latest + strategy: + matrix: + include: + - build: mac + node_version: '21.6.2' + os: macos-latest + - build: mac-intel + node_version: '21.6.2' + os: macos-latest + - build: win32 + node_version: '21.6.2' + os: windows-latest + - build: win64 + node_version: '21.6.2' + os: windows-latest + - build: linux + node_version: '21.6.2' + os: ubuntu-latest + container: + image: cimg/node:${{ matrix.node_version }} + steps: + - uses: actions/checkout@v2 + - uses: actions/cache@v2 + with: + path: | + ./node_modules + ./* + key: ${{ runner.os }}-build-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-build- + - name: Install Dependencies + run: | + yarn --ignore-engines + - name: Build + run: | + if [ "${{ matrix.build }}" = "mac" ]; then + sudo yarn make:mac + elif [ "${{ matrix.build }}" = "mac-intel" ]; then + sudo yarn make:mac-intel + elif [ "${{ matrix.build }}" = "win32" ]; then + sudo dpkg --add-architecture i386 + sudo apt-get -y update + sudo apt-get -y install wine wine32 mono-devel + sudo yarn make:win32 + elif [ "${{ matrix.build }}" = "win64" ]; then + sudo dpkg --add-architecture i386 + sudo apt-get -y update + sudo apt-get -y install wine wine32 mono-devel + sudo yarn make:win + elif [ "${{ matrix.build }}" = "linux" ]; then + sudo apt-get -y update + sudo apt-get -y install fakeroot rpm squashfs-tools + sudo yarn make:linux + fi + - name: Test + if: matrix.build == 'mac' + run: | + yarn test + - uses: actions/upload-artifact@v2 + with: + name: build-artifacts-${{ matrix.build }} + path: | + ./out/make/** +