name: release run-name: release on: push: branches: - master jobs: tests: name: tests runs-on: ubuntu-latest steps: - uses: https://github.com/actions/checkout.git@v4 - name: Hash of Cargo.lock id: get-hash run: echo "::set-output name=hash::$(md5sum Cargo.lock | awk '{ print $1; }')" - uses: https://gitea.com/wolfogre/cache/restore@v3 id: cache with: key: "${{github.repository}}-cache-cargo-clippy-v4-${{ steps.get-hash.outputs.hash }}" path: | .cache target restore-keys: ${{github.repository}}-cache-cargo-clippy-v4 - name: tests uses: nanobyte-public/rust-action@master with: args: | CARGO_HOME=./.cache cargo-nan \"Bearer ${{secrets.deployment_package}}\" cargo clippy -- -Dwarnings && \ CARGO_HOME=./.cache cargo-nan \"Bearer ${{secrets.deployment_package}}\" cargo clippy --tests -- -Dwarnings && \ CARGO_HOME=./.cache cargo-nan \"Bearer ${{secrets.deployment_package}}\" cargo test - uses: https://gitea.com/wolfogre/cache/save@v3 if: steps.cache.outputs.cache-hit != 'true' with: path: | .cache target key: "${{github.repository}}-cache-cargo-clippy-v4-${{ steps.get-hash.outputs.hash }}" docker: name: docker runs-on: ubuntu-latest needs: [tests] # require tests to pass before deploy runs container: image: ovlach/docker-gitea:v0.0.2-alpha steps: - uses: https://github.com/actions/checkout.git@v4 - name: Login to git.nanobyte.cz uses: https://github.com/docker/login-action@v3 with: username: ${{ secrets.DEPLOYMENT_PACKAGE }} password: ${{ secrets.DEPLOYMENT_PACKAGE }} registry: git.nanobyte.cz - name: Get short hash from git repository id: git run: echo "::set-output name=short_hash::$(git rev-parse --short HEAD)" - name: Build and push docker run: | docker build . -t git.nanobyte.cz/$GITHUB_REPOSITORY_OWNER/ovlach_frontend:${{steps.git.outputs.short_hash}} --build-arg GITEA_TOKEN="Bearer ${{secrets.DEPLOYMENT_PACKAGE}}" && \ docker push git.nanobyte.cz/$GITHUB_REPOSITORY_OWNER/ovlach_frontend:${{steps.git.outputs.short_hash}} stage_deployment: name: stage-deployment runs-on: ubuntu-latest needs: [docker] # require tests to pass before deploy runs steps: - name: Install kustomize run: | apt-get update && apt-get install -y curl && curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash - uses: https://github.com/actions/checkout.git@v4 with: ssh-key: '${{ secrets.VLACH_XYZ_DEPLOY }}' path: 'vlach_xyz_deploy' repository: 'ovlach/vlach_xyz' ref: 'master' github-server-url: 'ssh://git.nanobyte.cz' ssh-known-hosts: 'git.nanobyte.cz ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC3senpFPTYk75y73d1xL4XEDBe5AcLJ+GLEA+XTMpMiLsociwUeJZCJZoRUsZBH1bSvlgT23wlHtGJvDARygCBX/rZKKIb0KdD5qYgbtCzdmyg1Aw6+RNbgsOZuuDqh1HCLftj6PZWKXfEyp1rLjVCJEBmK2+iC54VjGTrm/0D3Mi1Tzpbmz0U+SqiZpNmC4GJu3riyxcXBrySsEZjWFcrUGSfVW9/MzzNk6relemGrkvBFDh6+lcx5bvPi3wamm0dlS+ySB9GhkGMukjCHHGLleRRZB3hf8ClbiMrod0KXwG1RQzqBIn3or4AUrl2ExIeA+olBTGIooy1sf/s8qBSGytYwUR1wbkMa9SIPWxIyioQY2uPu8Jg2qUYyZCJLNMeCVne5QGfxcDPm468pkkKOHVDqsVmhzRvcLuadpLHffZRg9Ds8LWSpIZh/OSWUkeavP0kSEN+vC4j/pFepYId3GJrEv/FN8KvdxKndkH2WyK2JAMcbTQAq3LiUgApuSuY1717VYNEhkEJ7u4NNmZhkW7WpTU75TCwMqrR77/eHO3ou5U7LEAKE4ujXrRX6HDgiRpg4psnI48hoJ/K50DYCL9CUAYcXLXjWhfmYUaN/1FYWS6cNpaTcwqOsdpYW4yfzqzIPLxe4GbIcEPinkywr7InwivyDIsPUYbXE9KBEw==' - name: configure git run: git config --global user.email "gitea-bot@nanobyte.cz" && git config --global user.name "Gitea Bot" - name: Update images run: | cd vlach_xyz_deploy && cd kubernetes/staging/ && ../../../kustomize edit set image web=git.nanobyte.cz/$GITHUB_REPOSITORY_OWNER/ovlach_frontend:${{steps.git.outputs.short_hash}} && git add . && git commit -m "upgrade ovlach_frontend -> ${{steps.git.outputs.short_hash}}" && git push origin master