diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7a8ae0850..85ea6580c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,205 +14,6 @@ on: pull_request: jobs: - build: - timeout-minutes: 60 - strategy: - fail-fast: false - matrix: - job_name: ['linux', 'mac_amd64', 'mac_arm64', 'windows_amd64', 'windows_386', 'other_os', 'go1.13', 'go1.14', 'go1.15'] - - include: - - job_name: linux - os: ubuntu-latest - go: '1.16.x' - gotags: cmount - build_flags: '-include "^linux/"' - check: true - quicktest: true - racequicktest: true - deploy: true - - - job_name: mac_amd64 - os: macOS-latest - go: '1.16.x' - gotags: 'cmount' - build_flags: '-include "^darwin/amd64" -cgo' - quicktest: true - racequicktest: true - deploy: true - - - job_name: mac_arm64 - os: macOS-latest - go: '1.16.x' - gotags: 'cmount' - build_flags: '-include "^darwin/arm64" -cgo -macos-arch arm64 -macos-sdk macosx11.1 -cgo-cflags=-I/usr/local/include -cgo-ldflags=-L/usr/local/lib' - deploy: true - - - job_name: windows_amd64 - os: windows-latest - go: '1.16.x' - gotags: cmount - build_flags: '-include "^windows/amd64" -cgo' - build_args: '-buildmode exe' - quicktest: true - racequicktest: true - deploy: true - - - job_name: windows_386 - os: windows-latest - go: '1.16.x' - gotags: cmount - goarch: '386' - cgo: '1' - build_flags: '-include "^windows/386" -cgo' - build_args: '-buildmode exe' - quicktest: true - deploy: true - - - job_name: other_os - os: ubuntu-latest - go: '1.16.x' - build_flags: '-exclude "^(windows/|darwin/|linux/)"' - compile_all: true - deploy: true - - - job_name: go1.13 - os: ubuntu-latest - go: '1.13.x' - quicktest: true - - - job_name: go1.14 - os: ubuntu-latest - go: '1.14.x' - quicktest: true - racequicktest: true - - - job_name: go1.15 - os: ubuntu-latest - go: '1.15.x' - quicktest: true - racequicktest: true - - name: ${{ matrix.job_name }} - - runs-on: ${{ matrix.os }} - - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Install Go - uses: actions/setup-go@v2 - with: - stable: 'false' - go-version: ${{ matrix.go }} - - - name: Set environment variables - shell: bash - run: | - echo 'GOTAGS=${{ matrix.gotags }}' >> $GITHUB_ENV - echo 'BUILD_FLAGS=${{ matrix.build_flags }}' >> $GITHUB_ENV - echo 'BUILD_ARGS=${{ matrix.build_args }}' >> $GITHUB_ENV - if [[ "${{ matrix.goarch }}" != "" ]]; then echo 'GOARCH=${{ matrix.goarch }}' >> $GITHUB_ENV ; fi - if [[ "${{ matrix.cgo }}" != "" ]]; then echo 'CGO_ENABLED=${{ matrix.cgo }}' >> $GITHUB_ENV ; fi - - - name: Install Libraries on Linux - shell: bash - run: | - sudo modprobe fuse - sudo chmod 666 /dev/fuse - sudo chown root:$USER /etc/fuse.conf - sudo apt-get install fuse libfuse-dev rpm pkg-config - if: matrix.os == 'ubuntu-latest' - - - name: Install Libraries on macOS - shell: bash - run: | - brew update - brew install --cask macfuse - if: matrix.os == 'macOS-latest' - - - name: Install Libraries on Windows - shell: powershell - run: | - $ProgressPreference = 'SilentlyContinue' - choco install -y winfsp zip - echo "CPATH=C:\Program Files\WinFsp\inc\fuse;C:\Program Files (x86)\WinFsp\inc\fuse" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - if ($env:GOARCH -eq "386") { - choco install -y mingw --forcex86 --force - echo "C:\\ProgramData\\chocolatey\\lib\\mingw\\tools\\install\\mingw32\\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - } - # Copy mingw32-make.exe to make.exe so the same command line - # can be used on Windows as on macOS and Linux - $path = (get-command mingw32-make.exe).Path - Copy-Item -Path $path -Destination (Join-Path (Split-Path -Path $path) 'make.exe') - if: matrix.os == 'windows-latest' - - - name: Print Go version and environment - shell: bash - run: | - printf "Using go at: $(which go)\n" - printf "Go version: $(go version)\n" - printf "\n\nGo environment:\n\n" - go env - printf "\n\nRclone environment:\n\n" - make vars - printf "\n\nSystem environment:\n\n" - env - - - name: Go module cache - uses: actions/cache@v2 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} - restore-keys: | - ${{ runner.os }}-go- - - - name: Build rclone - shell: bash - run: | - make - - - name: Run tests - shell: bash - run: | - make quicktest - if: matrix.quicktest - - - name: Race test - shell: bash - run: | - make racequicktest - if: matrix.racequicktest - - - name: Code quality test - shell: bash - run: | - make build_dep - make check - if: matrix.check - - - name: Compile all architectures test - shell: bash - run: | - make - make compile_all - if: matrix.compile_all - - - name: Deploy built binaries - shell: bash - run: | - if [[ "${{ matrix.os }}" == "ubuntu-latest" ]]; then make release_dep_linux ; fi - if [[ "${{ matrix.os }}" == "windows-latest" ]]; then make release_dep_windows ; fi - make ci_beta - env: - RCLONE_CONFIG_PASS: ${{ secrets.RCLONE_CONFIG_PASS }} - # working-directory: '$(modulePath)' - # Deploy binaries if enabled in config && not a PR && not a fork - if: matrix.deploy && github.head_ref == '' && github.repository == 'rclone/rclone' - android: timeout-minutes: 30 name: "android-all"