if: tag != latest_develop # dont build for the latest_develop tagged version dist: xenial git: depth: false language: go go: - 1.17.x services: - docker before_install: - set -e # Configure environment so changes are picked up when the Docker daemon is restarted after upgrading - echo '{"experimental":true}' | sudo tee /etc/docker/daemon.json - export DOCKER_CLI_EXPERIMENTAL=enabled # Upgrade to Docker CE 19.03 for BuildKit support - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" - sudo apt-get update - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce # install binfmt docker container, this container uses qemu to run arm programs transparently allowng docker to build arm 6,7,8 containers. - docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64 # Show info to simplify debugging and create a builder that can build the platforms we need - docker info - docker buildx create --name builder --use - docker buildx inspect --bootstrap - docker buildx ls install: - echo -e "machine github.com\n login $CI_USER_TOKEN" > ~/.netrc - nvm install 12 - travis_retry make pre-ui - make generate - CI=false make ui-validate ui-only #- go get -v github.com/mgechev/revive script: # left lint off to avoid getting extra dependency #- make lint - make fmt-check vet it after_success: - docker pull stashapp/compiler:5 - sh ./scripts/cross-compile.sh - git describe --tags --exclude latest_develop | tee CHECKSUMS_SHA1 - sha1sum dist/stash-* | sed 's/dist\///g' | tee -a CHECKSUMS_SHA1 - 'if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then sh ./scripts/upload-pull-request.sh; fi' before_deploy: # push the latest tag when on the develop branch - if [ "$TRAVIS_BRANCH" = "develop" ]; then git tag -f latest_develop; git push -f --tags; fi - export RELEASE_DATE=$(date +'%Y-%m-%d %H:%M:%S %Z') - export STASH_VERSION=$(git describe --tags --exclude latest_develop) # set TRAVIS_TAG explcitly to the version so that it doesn't pick up latest_develop - if [ "$TRAVIS_BRANCH" = "master" ]; then export TRAVIS_TAG=${STASH_VERSION}; fi deploy: # latest develop release - provider: releases # use the v2 release provider for proper release note setting edge: true api_key: secure: tGJ2q62CfPdayid2qEtW2aGRhMgCl3lBXYYQqp3eH0vFgIIf6cs7IDX7YC/x3XKMEQ/iMLZmtCXZvSTqNrD6Sk7MSnt30GIs+4uxIZDnnd8mV5X3K4n4gjD+NAORc4DrQBvUGrYMKJsR5gtkH0nu6diWb1o1If7OiJEuCPRhrmQYcza7NUdABnA9Z2wn2RNUV9Ga33WUCqLMEU5GtNBlfQPiP/khCQrqn/ocR6wUjYut3J6YagzqH4wsfJi3glHyWtowcNIw1LZi5zFxHD/bRBT4Tln7yypkjWNq9eQILA6i6kRUGf7ggyTx26/k8n4tnu+QD0vVh4EcjlThpU/LGyUXzKrrxjRwaDZnM0oYxg5AfHcBuAiAdo0eWnV3lEWRfTJMIVb9MPf4qDmzR4RREfB5OXOxwq3ODeCcJE8sTIMD/wBPZrlqS/QrRpND2gn2X4snkVukN9t9F4CMTFMtVSzFV7TDJW5E5Lq6VEExulteQhs6kcK9NRPNAaLgRQAw7X9kVWfDtiGUP+fE2i8F9Bo8bm7sOT5O5VPMPykx3EgeNg1IqIgMTCsMlhMJT4xBJoQUgmd2wWyf3Ryw+P+sFgdb5Sd7+lFgJBjMUUoOxMxAOiEgdFvCXcr+/Udyz2RdtetU1/6VzXzLPcKOw0wubZeBkISqu7o9gpfdMP9Eq00= file: - dist/stash-osx - dist/stash-osx-applesilicon - dist/stash-win.exe - dist/stash-linux - dist/stash-linux-arm64v8 - dist/stash-linux-arm32v7 - dist/stash-pi - CHECKSUMS_SHA1 skip_cleanup: true overwrite: true name: "${STASH_VERSION}: Latest development build" release_notes: "**${RELEASE_DATE}**\n This is always the latest committed version on the develop branch. Use as your own risk!" prerelease: true on: repo: stashapp/stash branch: develop # docker image build for develop release - provider: script skip_cleanup: true script: bash ./docker/ci/x86_64/docker_push.sh development on: repo: stashapp/stash branch: develop # official master release - only build when tagged - provider: releases api_key: secure: tGJ2q62CfPdayid2qEtW2aGRhMgCl3lBXYYQqp3eH0vFgIIf6cs7IDX7YC/x3XKMEQ/iMLZmtCXZvSTqNrD6Sk7MSnt30GIs+4uxIZDnnd8mV5X3K4n4gjD+NAORc4DrQBvUGrYMKJsR5gtkH0nu6diWb1o1If7OiJEuCPRhrmQYcza7NUdABnA9Z2wn2RNUV9Ga33WUCqLMEU5GtNBlfQPiP/khCQrqn/ocR6wUjYut3J6YagzqH4wsfJi3glHyWtowcNIw1LZi5zFxHD/bRBT4Tln7yypkjWNq9eQILA6i6kRUGf7ggyTx26/k8n4tnu+QD0vVh4EcjlThpU/LGyUXzKrrxjRwaDZnM0oYxg5AfHcBuAiAdo0eWnV3lEWRfTJMIVb9MPf4qDmzR4RREfB5OXOxwq3ODeCcJE8sTIMD/wBPZrlqS/QrRpND2gn2X4snkVukN9t9F4CMTFMtVSzFV7TDJW5E5Lq6VEExulteQhs6kcK9NRPNAaLgRQAw7X9kVWfDtiGUP+fE2i8F9Bo8bm7sOT5O5VPMPykx3EgeNg1IqIgMTCsMlhMJT4xBJoQUgmd2wWyf3Ryw+P+sFgdb5Sd7+lFgJBjMUUoOxMxAOiEgdFvCXcr+/Udyz2RdtetU1/6VzXzLPcKOw0wubZeBkISqu7o9gpfdMP9Eq00= file: - dist/stash-osx - dist/stash-osx-applesilicon - dist/stash-win.exe - dist/stash-linux - dist/stash-linux-arm64v8 - dist/stash-linux-arm32v7 - dist/stash-pi - CHECKSUMS_SHA1 # make the release a draft so the maintainers can confirm before releasing draft: true skip_cleanup: true overwrite: true # don't write the body. To be done manually for now. In future we might # want to generate the changelog or get it from a file name: ${STASH_VERSION} on: repo: stashapp/stash tags: true # make sure we don't release using the latest_develop tag condition: $TRAVIS_TAG != latest_develop # docker image build for master release - provider: script skip_cleanup: true script: bash ./docker/ci/x86_64/docker_push.sh latest on: repo: stashapp/stash tags: true # make sure we don't release using the latest_develop tag condition: $TRAVIS_TAG != latest_develop