diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 767d02c6..e545737c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,8 +1,46 @@ on: push +concurrency: + group: ci-${{ github.head_ref || github.ref }}-${{ github.repository }} + cancel-in-progress: true name: Build and release on push jobs: - release: - name: Test and Release + tests-integration: + name: Integration tests + runs-on: ubuntu-latest + steps: + - name: Install Go + uses: actions/setup-go@v2 + with: + go-version: 1.14.x + - name: Checkout code + uses: actions/checkout@v2 + - name: setup-docker + uses: docker-practice/actions-setup-docker@0.0.1 + - name: Login to quay + run: echo ${{ secrets.DOCKER_TESTING_PASSWORD }} | sudo -E docker login -u ${{ secrets.DOCKER_TESTING_USERNAME }} --password-stdin quay.io + - name: Install deps + run: | + sudo apt-get install -y upx && sudo -E env "PATH=$PATH" make deps + sudo curl -fSL "https://github.com/genuinetools/img/releases/download/v0.5.11/img-linux-amd64" -o "/usr/bin/img" + sudo chmod a+x "/usr/bin/img" + - name: Login to quay with img + run: echo ${{ secrets.DOCKER_TESTING_PASSWORD }} | sudo img login -u ${{ secrets.DOCKER_TESTING_USERNAME }} --password-stdin quay.io + - name: Tests with Img backend + run: | + sudo -E env "PATH=$PATH" \ + env "LUET_BACKEND=img" \ + make test-integration + - name: Tests + run: | + sudo -E \ + env "PATH=$PATH" \ + env "TEST_DOCKER_IMAGE=${{ secrets.DOCKER_TESTING_IMAGE }}" \ + env "UNIT_TEST_DOCKER_IMAGE=${{ secrets.DOCKER_TESTING_IMAGE }}" \ + env "UNIT_TEST_DOCKER_IMAGE_REPOSITORY=${{ secrets.DOCKER_TESTING_UNIT_TEST_IMAGE }}" \ + make test-integration + + tests-unit: + name: Unit tests runs-on: ubuntu-latest steps: - name: Install Go @@ -22,13 +60,6 @@ jobs: sudo chmod a+x "/usr/bin/img" - name: Build test run: sudo -E env "PATH=$PATH" make multiarch-build-small - - name: Login to quay with img - run: echo ${{ secrets.DOCKER_TESTING_PASSWORD }} | sudo img login -u ${{ secrets.DOCKER_TESTING_USERNAME }} --password-stdin quay.io - - name: Tests with Img backend - run: | - sudo -E env "PATH=$PATH" \ - env "LUET_BACKEND=img" \ - make test-integration - name: Tests run: | sudo -E \ @@ -36,7 +67,28 @@ jobs: env "TEST_DOCKER_IMAGE=${{ secrets.DOCKER_TESTING_IMAGE }}" \ env "UNIT_TEST_DOCKER_IMAGE=${{ secrets.DOCKER_TESTING_IMAGE }}" \ env "UNIT_TEST_DOCKER_IMAGE_REPOSITORY=${{ secrets.DOCKER_TESTING_UNIT_TEST_IMAGE }}" \ - make test-integration test-coverage + make test-coverage + + release: + name: Test and Release + needs: ["tests-integration","tests-unit"] + runs-on: ubuntu-latest + steps: + - name: Install Go + uses: actions/setup-go@v2 + with: + go-version: 1.14.x + - name: Checkout code + uses: actions/checkout@v2 + - name: setup-docker + uses: docker-practice/actions-setup-docker@0.0.1 + - name: Login to quay + run: echo ${{ secrets.DOCKER_TESTING_PASSWORD }} | sudo -E docker login -u ${{ secrets.DOCKER_TESTING_USERNAME }} --password-stdin quay.io + - name: Install deps + run: | + sudo apt-get install -y upx && sudo -E env "PATH=$PATH" make deps + sudo curl -fSL "https://github.com/genuinetools/img/releases/download/v0.5.11/img-linux-amd64" -o "/usr/bin/img" + sudo chmod a+x "/usr/bin/img" - name: Build run: sudo -E env "PATH=$PATH" make multiarch-build-small && sudo chmod -R 777 release/ - name: Release diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 07e6957c..af1d614a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,7 +2,31 @@ on: pull_request name: Build and Test jobs: - test: + tests-integration: + strategy: + matrix: + go-version: [1.14.x] + platform: [ubuntu-latest] + runs-on: ${{ matrix.platform }} + steps: + - name: Install Go + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go-version }} + - name: Checkout code + uses: actions/checkout@v2 + - name: setup-docker + uses: docker-practice/actions-setup-docker@0.0.1 + - name: Install deps + run: | + sudo apt-get install -y upx && sudo -E env "PATH=$PATH" make deps + sudo curl -fSL "https://github.com/genuinetools/img/releases/download/v0.5.11/img-linux-amd64" -o "/usr/bin/img" + sudo chmod a+x "/usr/bin/img" + - name: Tests with Img backend + run: sudo -E env "PATH=$PATH" env "LUET_BACKEND=img" make test-integration + - name: Tests + run: sudo -E env "PATH=$PATH" make test-integration + tests-unit: strategy: matrix: go-version: [1.14.x] @@ -24,7 +48,5 @@ jobs: sudo chmod a+x "/usr/bin/img" - name: Build run: sudo -E env "PATH=$PATH" make multiarch-build-small - - name: Tests with Img backend - run: sudo -E env "PATH=$PATH" env "LUET_BACKEND=img" make test-integration - name: Tests - run: sudo -E env "PATH=$PATH" make test-integration test-coverage + run: sudo -E env "PATH=$PATH" make test-coverage