diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 415bb653..7c19bb6f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -96,48 +96,99 @@ jobs: dbtype: [postgres, mysql, mariadb, mssql, sqlite] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v2 + + - name: Set Test Variables + run: | + if [[ "$GITHUB_REF" =~ ^refs/tags/v* ]]; then + echo "Using TAG mode: $GITHUB_REF_NAME" + echo "REL_VERSION_STRICT=${GITHUB_REF_NAME#?}" >> $GITHUB_ENV + else + echo "Using BRANCH mode: v$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER" + echo "REL_VERSION_STRICT=$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER" >> $GITHUB_ENV + fi + + - name: Run Tests + env: + MATRIXENV: ${{ matrix.dbtype }} + CYPRESS_KEY: ${{ secrets.CYPRESS_KEY }} + run: | + dev/cypress/ci-setup.sh + docker run --name cypress --ipc=host --shm-size 1G -v $GITHUB_WORKSPACE:/e2e -w /e2e cypress/included:4.9.0 --record --key "$(CYPRESS_KEY)" --headless --group "$MATRIXENV" --ci-build-id "$REL_VERSION_STRICT" --config baseUrl=http://172.17.0.1:3000 + + arm: + name: ARM Build + runs-on: ubuntu-latest + needs: [cypress] + + steps: + - uses: actions/checkout@v2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 - - name: Set Test Variables - run: | - if [[ "$GITHUB_REF" =~ ^refs/tags/v* ]]; then - echo "Using TAG mode: $GITHUB_REF_NAME" - echo "REL_VERSION_STRICT=${GITHUB_REF_NAME#?}" >> $GITHUB_ENV - else - echo "Using BRANCH mode: v$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER" - echo "REL_VERSION_STRICT=$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER" >> $GITHUB_ENV - fi - - - name: Run Tests - env: - MATRIXENV: ${{ matrix.dbtype }} - CYPRESS_KEY: ${{ secrets.CYPRESS_KEY }} - run: | - dev/cypress/ci-setup.sh - docker run --name cypress --ipc=host --shm-size 1G -v $GITHUB_WORKSPACE:/e2e -w /e2e cypress/included:4.9.0 --record --key "$(CYPRESS_KEY)" --headless --group "$MATRIXENV" --ci-build-id "$REL_VERSION_STRICT" --config baseUrl=http://172.17.0.1:3000 + - 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: Login to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Download a Build Artifact + uses: actions/download-artifact@v2.1.0 + with: + name: drop + path: drop + + - name: Extract Build + run: | + mkdir -p build + tar -xzf $GITHUB_WORKSPACE/drop/wiki-js.tar.gz -C $GITHUB_WORKSPACE/build --exclude=node_modules + + - name: Build and push Docker images + uses: docker/build-push-action@v2.9.0 + with: + context: . + file: dev/build-arm/Dockerfile + platforms: linux/arm64,linux/arm/v7 + push: true + tags: | + requarks/wiki:canary-arm + requarks/wiki:canary-arm-${{ env.REL_VERSION_STRICT }} + ghcr.io/requarks/wiki:canary-arm + ghcr.io/requarks/wiki:canary-arm-${{ env.REL_VERSION_STRICT }} windows: name: Windows Build runs-on: windows-latest - needs: [build] + needs: [cypress] steps: - - name: Setup Node.js environment - uses: actions/setup-node@v2.5.1 - with: - node-version: 12.x - - - name: Download a Build Artifact - uses: actions/download-artifact@v2.1.0 - with: - name: drop - path: drop - - - name: Extract Build - run: | - mkdir -p win - tar -xzf $env:GITHUB_WORKSPACE\drop\wiki-js.tar.gz -C $env:GITHUB_WORKSPACE\win --exclude=node_modules - - - name: Install Dependencies - run: yarn --production --frozen-lockfile --non-interactive + - name: Setup Node.js environment + uses: actions/setup-node@v2.5.1 + with: + node-version: 12.x + + - name: Download a Build Artifact + uses: actions/download-artifact@v2.1.0 + with: + name: drop + path: drop + + - name: Extract Build + run: | + mkdir -p win + tar -xzf $env:GITHUB_WORKSPACE\drop\wiki-js.tar.gz -C $env:GITHUB_WORKSPACE\win --exclude=node_modules + + - name: Install Dependencies + run: yarn --production --frozen-lockfile --non-interactive