diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 798175d82f..2f3eeb2a56 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -1,13 +1,8 @@ name: Continuous integration on: - push: - branches: - - master - - '[0-9]+.[0-9]+' - tags: - - '*' - pull_request: + schedule: + - cron: '0 0 * * *' env: HAS_SECRETS: ${{ secrets.HAS_SECRETS }} @@ -20,208 +15,11 @@ jobs: if: "!startsWith(github.event.head_commit.message, '[skip ci] ')" steps: - - run: docker system prune --all --force - - uses: actions/checkout@v3 + - name: Delete old workflow runs + uses: MajorScruffy/delete-old-workflow-runs@v0.3.0 with: - fetch-depth: 0 - - - name: Get tag - id: tag2 - uses: frabert/replace-string-action@v2.2 - with: - pattern: refs/tags/(.*) - string: '{{ github.ref }}' - replace-with: $1 - if: startsWith(github.ref, 'refs/tags/') - - run: echo --${{ steps.tag2.outputs.replaced }}-- - - - uses: camptocamp/initialise-gopass-summon-action@v2 - with: - ci-gpg-private-key: ${{secrets.CI_GPG_PRIVATE_KEY}} - github-gopass-ci-token: ${{secrets.GOPASS_CI_GITHUB_TOKEN}} - patterns: docker - if: env.HAS_SECRETS == 'HAS_SECRETS' - - run: gpg --export-secret-keys --armor D121AF2DFA8E140688BD968930C9B913FD42EF13 > CI.asc - if: env.HAS_SECRETS == 'HAS_SECRETS' - - - id: tag - run: echo "##[set-output name=tag;]$(echo ${{ github.ref }}|sed 's%refs/tags/%%g')" - if: startsWith(github.ref, 'refs/tags/') - - run: sed --in-place 's/version = .*/version = "${{ steps.tag.outputs.tag }}"/g' build.gradle - if: startsWith(github.ref, 'refs/tags/') - - - id: last-tag - run: echo "##[set-output name=tag;]$(git describe --tags --abbrev=0)" - if: "!startsWith(github.ref, 'refs/tags/')" - - id: no-tag - run: echo "##[set-output name=nb;]$(git log --oneline ${{ steps.last-tag.outputs.tag }}..HEAD|wc -l)" - if: "!startsWith(github.ref, 'refs/tags/')" - - run: sed --in-place 's/version = .*/version = "${{ steps.last-tag.outputs.tag }}"/g' build.gradle - if: "!startsWith(github.ref, 'refs/tags/') && steps.no-tag.outputs.nb == 0" - - run: - sed --in-place 's/version = .*/version = "${{ steps.last-tag.outputs.tag }}+${{ steps.no-tag.outputs.nb - }}"/g' build.gradle - if: "!startsWith(github.ref, 'refs/tags/') && steps.no-tag.outputs.nb > 0" - - id: date - run: echo echo "##[set-output name=date;]$(date +%Y%m%d.%H%M%S)" - if: github.ref == 'refs/heads/master' - - run: sed --in-place 's/version = .*/version = "0.${{ steps.date.outputs.date }}.SNAPSHOT"/g' build.gradle - if: github.ref == 'refs/heads/master' - - - run: echo "enablePublishing=true" > gradle.properties - if: env.HAS_SECRETS == 'HAS_SECRETS' - - run: git diff - - - run: echo "${HOME}/.local/bin" >> ${GITHUB_PATH} - - run: python3 -m pip install --user --requirement=ci/requirements.txt - - - name: Checks - run: c2cciutils-checks - - - run: make build - - run: make acceptance-tests-up - - run: make acceptance-tests-run - - # Extract artifacts - - run: docker run --rm --detach --name=builder mapfish_print_builder || true - if: always() - - run: docker cp builder:/src/core/build/ core/build/ || true - if: always() - - - run: docker cp mapfish-print_tests_1:/src/examples/build/ examples/build/ || true - if: always() - - - run: c2cciutils-docker-logs || true - if: failure() - - - run: mkdir -p core/build/resources/actual examples/build/reports core/build/reports examples/build/resources/test/examples - if: always() - - uses: actions/upload-artifact@v3 - with: - name: Test results - path: core/build/resources/ - if-no-files-found: ignore - if: failure() - - uses: actions/upload-artifact@v3 - with: - name: Reports examples - path: examples/build/reports - if-no-files-found: ignore - if: failure() - - uses: actions/upload-artifact@v3 - with: - name: Reports core - path: core/build/reports - if-no-files-found: ignore - if: failure() - - uses: actions/upload-artifact@v3 - with: - name: Examples - path: examples/build/resources/test/examples - if-no-files-found: ignore - if: failure() - - - name: Collect test results - run: | - mkdir -p /tmp/test_results/junit - find . -name '*TEST-*.xml' -exec cp -v {} /tmp/test_results/junit/ \; - if: failure() - - uses: actions/upload-artifact@v3 - with: - name: Test results - path: /tmp/test_results - if: failure() - - - name: Publish - run: c2cciutils-publish - if: env.HAS_SECRETS == 'HAS_SECRETS' - - run: - docker run --rm --env=GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} mapfish_print_builder bash -c 'gradle - build && gradle publish' - if: ( startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master' ) && env.HAS_SECRETS == 'HAS_SECRETS' - - - id: version - run: echo "##[set-output name=version;]$(grep version build.gradle|sed "s/ \+version = .\(.*\)./\1/g")" - - name: Create Release - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ github.ref }} - release_name: Release ${{ steps.tag.outputs.tag }} - draft: false - prerelease: false - if: startsWith(github.ref, 'refs/tags/') && env.HAS_SECRETS == 'HAS_SECRETS' - - name: Upload Release Asset - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./core/build/libs/print-servlet-${{ steps.version.outputs.version }}.war - asset_name: print-servlet-${{ steps.version.outputs.version }}.war - asset_content_type: application/java-archive - if: startsWith(github.ref, 'refs/tags/') && env.HAS_SECRETS == 'HAS_SECRETS' - - name: Upload Release Asset - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./core/build/distributions/core-${{ steps.version.outputs.version }}.zip - asset_name: print-cli-${{ steps.version.outputs.version }}.zip - asset_content_type: application/zip - if: startsWith(github.ref, 'refs/tags/') && env.HAS_SECRETS == 'HAS_SECRETS' - - name: Upload Release Asset - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./core/build/libs/print-lib-${{ steps.version.outputs.version }}.jar - asset_name: print-lib-${{ steps.version.outputs.version }}.jar - asset_content_type: application/java-archive - if: startsWith(github.ref, 'refs/tags/') && env.HAS_SECRETS == 'HAS_SECRETS' - - name: Upload Release Asset - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./core/build/libs/print-lib-${{ steps.version.outputs.version }}-sources.jar - asset_name: print-lib-${{ steps.version.outputs.version }}-sources.jar - asset_content_type: application/java-archive - if: startsWith(github.ref, 'refs/tags/') && env.HAS_SECRETS == 'HAS_SECRETS' - - name: Upload Release Asset - uses: actions/upload-release-asset@v1.0.2 + repository: mapfish/mapfish-print # replace this with your own repository + older-than-seconds: 43200000 + #workflow: .github/workflows/main.yml env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./core/build/libs/print-lib-${{ steps.version.outputs.version }}-javadoc.jar - asset_name: print-lib-${{ steps.version.outputs.version }}-javadoc.jar - asset_content_type: application/java-archive - if: startsWith(github.ref, 'refs/tags/') && env.HAS_SECRETS == 'HAS_SECRETS' - - # Update the documentation - - uses: actions/checkout@v3 - with: - repository: mapfish/mapfish-print-doc - token: ${{ secrets.GOPASS_CI_GITHUB_TOKEN }} - path: mapfish-print-doc - - name: Extract the documentation - run: | - docker run --rm --detach --name=doc mapfish_print_builder - cd ${GITHUB_WORKSPACE}/mapfish-print-doc - git config user.email "ci@camptocamp.com" - git config user.name "CI" - git rm --ignore-unmatch -rqf . - docker cp doc:/src/docs/build/site/. . - git add -A . - git commit -m 'Update docs' - - name: Publish the documentation - run: | - cd ${GITHUB_WORKSPACE}/mapfish-print-doc - git push origin gh-pages - if: github.ref == 'refs/heads/master' && env.HAS_SECRETS == 'HAS_SECRETS'